忍者ブログ

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

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

<< | 2018/08 | 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 31 | >>

マイクロアド リンク

[PR]

×

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

使用して色々やってみた感想

※これは、個人的な主観なので要注意。
QT4.3.4のオープンソース版を使ってみた感想です。
2008年3月初旬から4月半までQTを学習し色々やった結果の話。
たった1ヶ月という期間での感想だから本気しないでね。
全体的に、英語力。理解力ともに高くないと使えない高難易度なのがQTだ。

 ここから、こういう人が導入したほうが楽かもしれないと、思われる項目。
90%、こんな人は導入しないほうがいいという説明だなw

●英語は使えますか?
何を見ても全てが英語です。
英語がわからない時点でQTは導入不可能。
英語が出来ないなら、荷物まとめてカエレ!
ヘルプを見てもサンプルを見ても。Hello! Hell 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つとして扱う。
いずれ単純なサンプルゲームを作って説明して説明したいですが。
全体的に動作が重たいです。WindowsならQTライブラリ>>WindowsAPI と順に使っていくので
当然ながら不可が大きいです。新しいPCなら問題ありませんが・・・。
※OpenGLを簡単に扱えるという話だが、映像を加工するソフトを作るだけなら問題ないかも。
マクロソフトの開発環境と比べるとデバッガなどが無いので
コンソール出力しなきゃいけない。そしてその方法も探す手間が多い。

●会社の方針でQTを使う
なら、導入するしかないじゃないか。
バージョンが変わるごとに仕様が変わるみたい。
DirectXにたとえるなら5と7が別物みたいなかんじですねぇw
いや8からか・・・

●デバッグするにはどうしたらいいの?
Windowsでは、qmake -project で*.proファイルを作成した後に
CONFIG += consoleを追加する。
そしてmakeすると・・・。オープンソース版だとdebugビルドできないの?
ただ、コンソールから情報だせるのでそれで我慢する。
PR

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****のクラスを派生させて作ることがわかったよ。

[失敗例]Qt(キュート)でウィンドウを作る。その1

※いきなりダイアログアプリから入って失敗したのでサンプル起動する!
 ここは、後でリベンジして更新します。
 ビルドとかの環境すら出来ないのに複雑なのを入れると成功しませんなぁ。


1.前回インストールしたQT4.3.4のメニューからDesignerを選択する。

2.新しいフォームのダイアログが表示されるのでダイアログ左側にあるリストからMain Windowを選択。
そして、作成(R)ボタンを押す。

起動時にこのダイアログを表示の設定をしてない人は、
メニューのファイル(F)の新しいフォーム(N)...
または、CTRL+Nキーを押して起動して実行してみてください。

3.メインウィンドウが出来上がる。
MainWindowができました?
画面の左側にはウィジットボックスってのが出てます。
VCでいうリソースエディタみたいな感じです。
右側にはなにやら設定するものが色々・・・。

4.ウィンドウを保存。
QTのセットアップフォルダにtestを作成。
testform1.uiを保存。

5.コマンドプロンプトを起動してソースを作成する。
MFCでウィンドウを作る感覚ですね。
メニューからQt 4.3.4 Command Promptを選択する。
コマンドプロンプトで
cd test
と入力してENTER

先ほど作ったtestform1.uiファイルに対して
コマンドラインから

uic -o testform1.h testform1.ui
と入力する。
ヘルプを見ると
User Interface Compiler (uic)という物らしい。
uic [options] UIファイル
※ -oのオプションは書き出しオプションでtestform1.hを出力する。
出力元ファイルはUIファイル。

なんか、それっぽいヘッダを出力することが出来た。
次はビルド方法を探すか。
というか、ヘッダーは出力してくれるけどMFCみたいにCPPを出すにはどうしたらいいんだ?


uic testform1.ui -i testform1.h -o testform1.cpp
これで出力してCPPもできるはずなんだが・・・
Windows版では -iのオプションがみあたらない。
うえええん。作れない。orz...

追記。
コマンドプロンプトから
①qmake -project
②qmake
でプロジェクトが作れる様子。 
①でフォルダ名称と同じプロジェクトを生成。
②でmakeファイルを作る。
さらにmain.cppとダイアログのソース、ウィンドウのソースは自分で作る模様。

ためしにmakeしてみたら大量のエラーが出て涙が止まらなかった。
おいおい。VC6.0のincludeファイル見てるんだが・・・
これはMinGWの問題なのかな。
ウィンドウを出すまでにVCをはじめたころと同じぐらいの苦労しそうですwww

QT/WINDOWSでビルドが出来ない人用
使用するQTのバージョンは4.3.4です。

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

カレンダー
07 2018/08 09
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 31
カウンター
FX NEWS

-外国為替-

AdminControlMenu: AdminMenu | NewEntry | EditComment | EditTrackback

忍者ブログ [PR]