プログラム関連~チラシの裏~―Qt/Windows[失敗例]カテゴリーの記事一覧プログラム関連~チラシの裏~スパム対策したりプログラム組んだり色々やってる為替とは別の面を表に出してみた。Exampleを実行する。(03/23)[失敗例]Qt(キュート)でウィンドウを作る。ないブログに表示されています。新しい記事を書く事で広告が消えます。※これは、個人的な主観なので要注意。QT4.3.4のオープンソース版を使ってみた感想です。2008年3月初旬から4月半までQTを学習し色々やった結果の話。1ヶ月という期間での感想だから本気しないでね。理解力ともに高くないと使えない高難易度なのがQTだ。ここから、こういう人が導入したほうが楽かもしれないと、思われる項目。90%、こんな人は導入しないほうがいいという説明だなw●英語は使えますか?何を見ても全てが英語です。英語がわからない時点でQTは導入不可能。英語が出来ないなら、荷物まとめてカエレ!ヘルプを見てもサンプルを見ても。you!アプリケーションを作っても英語ベースなので日本語を使うのに苦労します。日本は、ビジネスターゲットの外なんだとおもう。※もしかしたら有料版は日本語環境あるのかもしれん。●C++を完全に理解している?C++は正しく使えば使うほど、C言語とは別の言語です。知りたい事があれば必ずQTのコードを見る事になるでしょう。実際みていろいろ探した・・・。チーム内のC++レベルがクラス化してまとめただけのレベルならば導入は見送りましょう。※「クラス化してまとめただけ」・・・特に深く考えずに作るアプリケーション。中身がC言語という事で一番楽でバグが潰しやすい開発パターンです。C++もCも同じじゃん。いう人は導入しない事をお勧めします。●使いこなすまでの苦労が多い使いこなせばDirectXやWindowsAPIと同じ感じです。使いこなすまでの苦労は多いです。楽?簡単?という単語は信用しないほうがいいですな。最初の英語がわかるという項目が完全に駄目なので苦労は30倍だ!●使用するOSはWindowsのみである。QTを導入せずにWindowsAPIで作ったほうが情報も集めやすく楽です。MACやLinuxだけって場合は経験が無いので知りませんが。Windowsのみならば、QTを使わない方針のが安全です。QT3とQT4は別の生き物。※Windowsのみでやる仕事ならWindowsAPIを強く推奨しますw●携帯電話の組み込み系?Qtしか道が無い物だったら導入しましょう。やった事ないのでしらんけど。Qtopiaってのがそれにあたるらしい。俺の翻訳あてにならんけどw●ゲームが作りたい!完全にお勧めしません。QWidgetやQObjectを1つ作るごとに窓1つとして扱う。単純なサンプルゲームを作って説明して説明したいですが。全体的に動作が重たいです。順に使っていくので当然ながら不可が大きいです。新しいPCなら問題ありませんが・・・。※OpenGLを簡単に扱えるという話だが、映像を加工するソフトを作るだけなら問題ないかも。マクロソフトの開発環境と比べるとデバッガなどが無いのでコンソール出力しなきゃいけない。その方法も探す手間が多い。●会社の方針でQTを使うなら、導入するしかないじゃないか。バージョンが変わるごとに仕様が変わるみたい。consoleを追加する。makeすると・・・。オープンソース版だとdebugビルドできないの?ただ、コンソールから情報だせるのでそれで我慢する。Exampleを実行する。※真似してやってみたけど失敗した!という例です。Exampleを実行する。Exampleで検索をかけると出てきます。※さらに、QTなんか触ったことの無い人間が作ってます。間違ってる場所とか色々あると思うので指摘入れてください。※このサンプルは2つのエディットボックスにスピンコントロールがついた物の値を加算して結果を出すものです。QTデザイナーを完璧に使いこなす必要があるという翻訳が入っていたが・・・このサンプルで学べること。・Widget(ヴイジット)Widgetとは、デスクトップ上で特定の機能を実行するための簡易的なアプリケーションの総称である。Designerの使い方?まず、QT-Assitantのサンプルを見ながら作ろう。Designerを立ち上げる。2.フォーム選択画面でWidgetを選択する。プルダウンメニューのファイル(F)以下にある新しいフォーム(N)を選択する。フォーム選択画面がでるのでWidgetを選択して作成ボタンを押す。3.サンプルと同じリソースを配置する。Boxの配置ウィンドウの設定とかは後で調べます。デフォルトの状態なら画面の左にウィジェットボックスというのがついてます。VCでいう所のリソースコントロール選択みたいなものです。※消しちゃった人は、プルダウンメニューにツール(T)に表示設定があるのでヴィジェットボックスを選択するといい。Widgetsを見てみよう。Boxというのがありますね。マウスでスピンボックスをForm窓にドラッグする。4.サンプルと同じリソースを配置する。その2Labelの配置。サンプルにはスピンコントロールの上にInputの文字がありますな。※VC6.0でいうスタティックテキストです。Widgetsという所にLabelというのがあります。このラベルをForm窓にドラッグ。いんぷっと1、+、いんぷっと2、=、OutPutと全部で5個のQLabelが必要ですので5回ドラッグする。※日本語でラベルを作成すると後でひどい目に会います。絶対に日本語を使用しないこと~~。文字の変更は、オブジェクトインスペクタという窓でQTのクラス(リソース)を選択する。※または、Form画面でリソースを選択する。すると、プロパティエディタ窓が更新されます。※ここでサイズやら、座標やら色々変更できます。QLabelという項目を見つけ出して、textを選択する。+がついて項目が色々ありますが無視してtextだけ更新する。日本語OKなので画面にあわせて文字入力する。5.サンプルと同じリソースを配置する。その3最後にOutPut用の文字を配置する。ウィジェットボックスにContainers(コンタネイルズ?)というのがあるのでWidgetをForm画面にドラッグする。リソースの配置は終了です。配置し終わるとこんな感じの画面になります。赤い文字と丸は使用リソースと変更する個所です。※ここでは日本語文字を使っていますが、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ファイルを追加。※VC環境で商用版ならnmakeらしいビルドしてる順序をみると※mocというコマンドでmoc_***.cppで関数ポインタでボタンの反応する設定を作るみたい。MFCでいうBEGIN_MESSAGE_MAPとEND_MESSAGE_MAPの間にある。OnUnkoMoreta)みたいな物を作ってるみたい。何をしたらどの関数が呼ばれるのか設定する奴。関数テーブルとか駆使したソースがつくられる。プロジェクトフォルダ内のソースを全部見てconnect関数の中身からシグナルとスロットの接続関係を自動生成する。ソースが完成してないとエラーが出る。試して1日以上かかった。※次にuicコマンドでui_***.cppができる。Windowsでいう.RCファイルだとおもってボタンのサイズ、名前、色々な設定されるよ!これはQTの決まりごとなので、そういう風に考えるしかない。debugかreleaseフォルダの中にソースができる。9.サンプル起動で終了。※失敗してるのでビルドエラーだったりボタンに反応がなかったり・・・うえっうえっ。原因がわからねえぇよぉぉ。失敗したサンプルコードでよければどうぞ。※ビルドして実行は可能です。*.proとuiファイル入ってます。●ダウンロード(zip)とりあえず、コード内で何をやっているのかコメントを追加してある。MFCにたとえて・・・main.cppから順に追いかけてください。役に立つかはわからんが、実際はQt4の書籍を購入しないと意味不明さ。個別の処理はQ****のクラスを派生させて作ることがわかったよ。Qt/Windows[失敗例][失敗例]Qt(キュート)でウィンドウを作る。その1※いきなりダイアログアプリから入って失敗したのでサンプル起動する!ここは、後でリベンジして更新します。ビルドとかの環境すら出来ないのに複雑なのを入れると成功しませんなぁ。1.前回インストールしたQT4.3.4のメニューからDesignerを選択する。作成(R)ボタンを押す。起動時にこのダイアログを表示の設定をしてない人は、メニューのファイル(F)の新しいフォーム(N)...または、CTRL+Nキーを押して起動して実行してみてください。3.メインウィンドウが出来上がる。MainWindowができました?画面の左側にはウィジットボックスってのが出てます。VCでいうリソースエディタみたいな感じです。右側にはなにやら設定するものが色々・・・。4.ウィンドウを保存。QTのセットアップフォルダにtestを作成。testform1.uiを保存。5.コマンドプロンプトを起動してソースを作成する。MFCでウィンドウを作る感覚ですね。Promptを選択する。testform1.uiと入力する。(uic)という物らしい。-oのオプションは書き出しオプションでtestform1.hを出力する。出力元ファイルはUIファイル。なんか、それっぽいヘッダを出力することが出来た。次はビルド方法を探すか。-iのオプションがみあたらない。