忍者ブログ

プログラム関連~チラシの裏~

スパム対策したりプログラム組んだり色々やってる為替とは別の面を表に出してみた。

<< | 2017/09 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | >>

マイクロアド リンク

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

QT/WIndowsでCalculator Form Exampleを実行する。

※真似してやってみたけど失敗した!という例です。
何が悪かったのかわからんので誰か説明をっ・・・・


Calculator Form Exampleを実行する。
このサンプルはQT Assitant(MSDNみたいなの)からCalculator Form Exampleで検索をかけると出てきます。
※さらに、QTなんか触ったことの無い人間が作ってます。
間違ってる場所とか色々あると思うので指摘入れてください。切実・・・。

※このサンプルは2つのエディットボックスにスピンコントロールがついた物の値を加算して結果を出すものです。
まず、QTデザイナーを完璧に使いこなす必要があるという翻訳が入っていたが・・・

このサンプルで学べること。
Widget(ヴイジット)
 Widgetとは、デスクトップ上で特定の機能を実行するための簡易的なアプリケーションの総称である。
・QT Designerの使い方?

まず、QT-Assitantのサンプルを見ながら作ろう。
今回の手順
1.QT Designerを立ち上げる。

2.フォーム選択画面でWidgetを選択する。
 プルダウンメニューのファイル(F)以下にある新しいフォーム(N)を選択する。
 フォーム選択画面がでるのでWidgetを選択して作成ボタンを押す。

3.サンプルと同じリソースを配置する。その1
Spin Boxの配置
ウィンドウの設定とかは後で調べます。
デフォルトの状態なら画面の左にウィジェットボックスというのがついてます。
VCでいう所のリソースコントロール選択みたいなものです。
※消しちゃった人は、プルダウンメニューにツール(T)に表示設定があるのでヴィジェットボックスを選択するといい。
ウィジェットボックスのリストにあるInput Widgetsを見てみよう。
そこにSpin Boxというのがありますね。
マウスでスピンボックスをForm窓にドラッグする。
これで配置完了。

4.サンプルと同じリソースを配置する。その2
Labelの配置。
サンプルにはスピンコントロールの上にInputの文字がありますな。
※VC6.0でいうスタティックテキストです。
これは、Display Widgetsという所にLabelというのがあります。
このラベルをForm窓にドラッグ。
いんぷっと1、+、いんぷっと2、=、OutPutと全部で5個のQLabelが必要ですので5回ドラッグする。
※日本語でラベルを作成すると後でひどい目に会います。
翻訳して日本語ラベルを作るのが基本らしいので・・・
絶対に日本語を使用しないこと~~。死亡するぞ。


文字の変更は、オブジェクトインスペクタという窓でQTのクラス(リソース)を選択する。
※または、Form画面でリソースを選択する。
そうすると、プロパティエディタ窓が更新されます。
※ここでサイズやら、座標やら色々変更できます。
QLabelという項目を見つけ出して、textを選択する。
+がついて項目が色々ありますが無視してtextだけ更新する。
日本語OKなので画面にあわせて文字入力する。

5.サンプルと同じリソースを配置する。その3
最後にOutPut用の文字を配置する。
ウィジェットボックスにContainers(コンタネイルズ?)というのがあるので
WidgetをForm画面にドラッグする。
はい、コレで終了。
リソースの配置は終了です。

配置し終わるとこんな感じの画面になります。
sampl001.jpg
図その1 QT Desgner(Ver4.3.4オープンソース版)の画面 
赤い文字と丸は使用リソースと変更する個所です。
※ここでは日本語文字を使っていますが、Windows環境だとS-JISの文字コードじゃん。
日本語文字がちゃんと出てこない。なけるwwww
あと、デザイナーで日本語を入れると無理やりUTF-8のコードに変換されます。
「&」から始まる数値の文字列意味不明・・・。
必ず英語で画面用の名称をWindowTitle等。
日本語の翻訳ファイルをつくるのが正式?正しい方式しってたら教えて。


6.クラス名の設定を行う。
ObjectNameという項目がクラス名になったりメンバ名になります。
適当に決めるとひどい目に会う。全部適当にやったらひどいファイルができました。
何かわかりやすいルールを決めるべき。
まず、FormになるQWidgetとかQDialogは大文字からはじめるとか。
その下に貼り付けられるオブジェクトはm_からはじめるとか。
※ObjectNameがuic出力ソースの変数名クラス名になる事を知る。
コレはQTのルールみたいなので守ること。

※この手順で失敗してました。
on_inputSpinBox2_valueChanged
スロットとして用意した関数名の決め方にルールがあった。
on_+ウィジェット名+_+シグナル名+(対応した引数)
つまり、自分でspinBox2という名前をつけた場合。
on_spinBox2_valueChangedという名前のスロットを用意する必要があった。

7.ファイルとして保存する。
とりあえず、プロジェクトフォルダと同じ名前で保存する。
calculatorform.uiで保存。
なにやらファイル名も重要みたい。

8.ビルドして実行!
uiファイルを作った。
cppファイルを追加。削除。
こんなときは、必ず
qmake -project
qmake
make ※VC環境で商用版ならnmakeらしい

ビルドしてる順序をみると

※mocというコマンドでmoc_***.cppで関数ポインタでボタンの反応する設定を作るみたい。
MFCでいうBEGIN_MESSAGE_MAPとEND_MESSAGE_MAPの間にある。
ON_WM_PAINT()
ON_BN_CLICKED(IDB_UNKOMORETA, OnUnkoMoreta)
みたいな物を作ってるみたい。何をしたらどの関数が呼ばれるのか設定する奴。
関数テーブルとか駆使したソースがつくられる。
プロジェクトフォルダ内のソースを全部見てconnect関数の中身からシグナルとスロットの接続関係を自動生成する。
だから、ソースが完成してないとエラーが出る。色々試して1日以上かかった。
※次にuicコマンドでui_***.cppができる。Windowsでいう.RCファイルだとおもって
ボタンのサイズ、名前、色々な設定されるよ!

これはQTの決まりごとなので、そういう風に考えるしかない。

debugかreleaseフォルダの中にソースができる。

9.サンプル起動で終了。
※失敗してるのでビルドエラーだったりボタンに反応がなかったり・・・
うえっうえっ。原因がわからねえぇよぉぉ。
英語を必死翻訳・・・なけるっ・・・


失敗したサンプルコードでよければどうぞ。
※ビルドして実行は可能です。*.proとuiファイル入ってます。
ダウンロード(zip)
とりあえず、コード内で何をやっているのかコメントを追加してある。
MFCにたとえて・・・main.cppから順に追いかけてください。
役に立つかはわからんが、実際はQt4の書籍を購入しないと意味不明さ。
個別の処理はQ****のクラスを派生させて作ることがわかったよ。

PR
Aboutvxazs
Hi!ndjw! http://gwwjfgdb.com iadts qjtza

Commented on 2009/06/24 Wednesday 20:56:51

by Kazelxyk | コメント編集

Aboutdmwgr
Hi!

Commented on 2009/06/24 Wednesday 20:56:57

by Kazelcmo | コメント編集

この記事にコメントする







  Vodafone絵文字入力用パレット表示ボタン i-mode絵文字入力用パレット表示ボタン Ezweb絵文字入力用パレット表示ボタン

この記事へのトラックバック




ブログ内検索
最新コメント
[06/24 Kazelcmo]
[06/24 Kazelxyk]
[04/23 Presencia]
最新トラックバック
ブログ関連リンク

カレンダー
08 2017/09 10
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
カウンター
FX NEWS

-外国為替-

AdminControlMenu: AdminMenu | NewEntry | EditComment | EditTrackback

忍者ブログ [PR]