QtのCreatorを使用した経験とヒント(ターン)

     QtのはQt Creatorは公式のIDEで、IDEは、Qtのプログラマのための完全な開発環境を提供します。もちろん、このIDEは、フリー、Qtの中に書かれています。本当のIDEコンパイラのセクションでは、MinGWのgccのコンパイラを使用しています。言い換えれば、このIDEの主な役割は、ヘルプに、開発者がコードを書くと、より親しみやすいグラフィカルなインターフェイスでのMinGWを使用して(むしろ、コマンドラインより)です。ここで私はMS Visual Studioのように参照し、QtのCreatorは、Windowsプラットフォームでの経験やヒントに何かを言います。

 

1.プロジェクトファイルとプロジェクト組織構造

 

        (VCの新バージョンは、変換ツールを提供DSW)ソフトウェア・エンジニアリングを管理する(SLNが続く)DSWファイルですVC6を使用する前に、各DSWは、多くのDSP、すなわちプロジェクトドキュメントすることができます。各DSPは.h.cpp.rcは、各DSPが別々にコンパイルすることができます任意の数のファイルを含めることができます。これは、EXEまたはDLLまたはOCXにし、その上でコンパイルすることができます。すべてのDSPはDSWも一緒にコンパイルすることができ、さまざまなDSP間の依存関係を設定することができます。例えば、DSPはmyappのと呼ばれる、baseuiと呼ばれます。これはbaseui baseui.dllにコンパイルされますが、myappにはのmyapp.exeにコンパイルされます。クラスまたはリソースまたは機能の使用baseuiにmyappの必要性では、その後、必要性のbaseuiに依存してMYAPP。依存関係を設定した後、それぞれの時間は、全体のコンパイルの前に、baseuiは、それがすでに持ってコンパイルする前にmyappの必要なLIBを確保するためにコンパイルさmyappのを先行します。

Qtの創造者では、プロジェクトの組織はプロファイルの種類があり、それは、二次構造としてのDSPをDSWはありません。これは、DSWまたはDSPファイルだけでなく、機械生成テキストファイルと同じです。しかし、QtのCreatorで、あなたは多くの場合、手動で編集するには、このファイルが必要な場合があります。ここでは、単純なプロファイルには、次のとおりです。

TARGET = Test112

TEMPLATE =アプリ

SOURCES + = main.cppに/

        mainwindow.cpp

HEADERS + = mainwindow.h

FORMS + = mainwindow.ui

1行目は、「TARGET」は、ファイルの名前を定義します。

2行目「テンプレート」アプリがファイルを実行することができ、目的のファイルの種類を定義します。libには、(あなたはDLLを作ることができ、あなたはまた、ライブラリを使用するか、静的にリンクされたプラグインを)ライブラリファイルです。

すべてのcppファイルの定義における「ソース」。

すべての時間のファイルの定義における「HEADERS」;

UIが(Qtの創造主で編集インターフェースクラスで可視化することができる)すべてのファイルの定義における「FORMS」。

ここでqmakeの後のUIファイルがビジュアル編集のようなインターフェイス要素をコードで書かれているプログラムによって自動的に新しいUIクラスを生成ui_の先頭に.hファイルを生成するかを、言って。クラスファイルに対応するUIで、UIこの自動的に生成されたクラスは、開発者を支援する、新しいの新しいインスタンスになります。

UIファイルは、開発者は、いくつかのインターフェイス関連のコードを生成するのに役立ちます、つまり、理解していなかった私が言ったことを知っているが、コードは元のクラスのために使用されるインターフェイスの新しいクラスの形で他のメンバ変数とコードではいけません。Qtの創造主VCは元のクラスに直接コードを変更しなかった理由(Khanはああ、私が話しの疲れ)私は理解していませんでした。これは、それを達成することは非常に困難ですか?私はそれが実際にxmlファイルの記述のインターフェースである、.uiファイルの読み込みを開きました。あなたは、この実装は部分書き込みプログラム・インタフェースと柔軟な十分な、それはインターフェースに来る場合にのみ、プログラムをアップグレードする場合は、あなただけのUIファイルのアップグレードをダウンロードできるという利点を有する参照くださいどこに忘れてください。この機能は、これらのSaaSソフトウェア開発者は恍惚ことがあります。しかし、ほとんどのデスクトップアプリ開発者のために、それが混乱少しでした。幸いなことに、そこにQtのシグナル/スロットがウィジェットクラスとのインターフェース(例えば、ダイアログボックス)間の転送メッセージに使用することができ、または「false親」のこの層の中央が実装であることは受け入れられません。

プロ文書はあまり、十分なプロジェクト管理上のQt Creatorをを説明するために言うと、設定は特に友好的ではありません。VC(さえVC6)と比較して、より大きなギャップを有します。編集プロファイルには、コマンドラインモードを使用して、書き込みプログラムにC N年前にターボを思い出させます。ああ、それは、ソース・ソフトウェア・子どもを開くことが当たり前でしょうか?

プロファイルについて、多くのコンテンツ開発者が知っておく必要があります。私は特別な先端を書きます。

 

2. IDEインタフェース

        VCインターフェイスは非常に古典的で、根本的な変化は、長年にわたって発生しませんでした(私はVC6の古いVCerの将来のバージョンの多くは、クラスウィザードはまだ恨みを負担キャンセルと思います)。

        QtのCreatorは、インターフェースがより一般的です。事故はこれがOOPのために非常に不便であり、何のクラスツリー(クラスツリー)ではありません。何のクラスツリーが存在しないため、開発者は手段を手動でクラスの.hとの.cppファイルに二回、関数名を入力するメンバ関数の必要性を追加するクラスコードに関連することはできません。一方、オーバーロード関数はまた、より多くのVCでの時間よりも支払う必要があります。時間の関数を追加する際には、わずか5〜10秒を増大させることができるが、ちょうどインスピレーションプログラマのフラッシュのために、それはよりイライラすることができます。私はそれ以降のバージョンを追加できるようにしたいです。

    Qtの創造主インターフェースコード入力は良い仕事をし、構文色付け(だけでなく、標準C ++着色、などなどSLOT、としてQtのユニークなキーワード着色、)とVCのインテリセンスと同様の機能(コード補完)は、非常に快適に感じています。私は、VCチームのブログもその多くの問題インテリセンスのメッセージだった見にいくつかの時間前に覚えています。私はこの2ヶ月の期間のQtの創造主、私たちは見つかっていないバグを使用しています。しかし、私はいつものVisualほとんどのプロを行うための機能を支援することを感じました。使用VAの学生が手を上げてください。

 

3.コンパイル

    コンパイル速度で、VCの勝利。少しだけ速く毎日の激務。もちろん、それ自体が時間を取っことqmakeは、まだ明確にVCがはるかに高速で感じることができます。

    コンパイルされたコードの品質で、私は素人ではなく、結論にジャンプしています。しかし、私はQtは多分それは犠牲のパフォーマンスのためにやっているのexeファイルは、大きくなって生成された感じ。コードを書くときTXドアは簡単な方法をしないように、(例えば、QtGUIなど)全体のQtモジュールが来る含まれます。

 

4.デバッグ

    私が言っているが、また、VCを獲得しました。QtのCreatorはないだけ遅いですが、また多くの場合、いくつかの奇妙な問題。あなたは、再ビルドデバッグヘルパーに求められることがあります。また、gdbのクラッシュを表示されることがあります。

 

5.ヘルプ

        MSDNが言うことではありません。QtのQtは、プログラムがすべての助けのための特別なオファーを持って支援します。それ自体のQt Creatorはまた、ヘルプモジュールを持っています。ネットワーク上で、Qtの中央フォーラムやWikiを提供しています。しかし、プログラム遭遇した問題ならば、あなたははるかに少ないにVCを使用する人よりも、その使用してQtのを見つけます。VCは、人々すでに遭遇し、解決策をオンラインで公開されている中にいくつかのマイナーな問題かもしれません。あなたはQtの遭遇する問題は、インターネット上で答えを見つけることが困難な場合があります。、我々はまた、オープンソースコミュニティの充実に努めQtのTX。

 

どのように選択すること6.

    あなただけのWindows上でQtの開発を使用する場合は、VC2008を選択することができます。Expressバージョンは無料です。

    あなたは、クロスプラットフォームのプログラムを開発しようとしている、またはQtの創造主を選択する必要があります。Windows、Linux、およびMac上でそれが実行できるため(MinGWのは、クロスプラットフォームです)。だから、プラットフォームからの移植やメンテナンスを検討し、QtのCreatorは良い選択かもしれません。また、私の個人的な経験は、VCは、しばしば不可解な終了が発生し、VC6 2008年から使用されているものである、時々コードが保存されません。そして起こったことがないのQtクリエーターズを使用して、この時、中。私は、これはまた、Qtの自身の側から非常に堅牢であることを証明していると信じています。

 

いくつかの使用のQt作者の先端

 

コンパイラモジュールSQLでOpenGLを使用したかのようなネットワークまたは後に1

QT + =ネットワークやQT + = openglのかQT + = SQL:プロファイルに次の文を書きます

 

2.大文字と小文字を区別コード補完

[ツール] - のテキストEditorの]> [オプション]メニュー> [チェックを外して中に完了「ケース・センシティブ完了」、それはあなたが間違っている場合は、全体の完成消えませんので。

 

何のデバッグヘルパー3.デバッグ時間をヒントません

以下は、オプションメニューの位置に赤い丸が再構築]をクリックします。

 


4. QRCは、画像に追加しましたが、プログラムにはなりません。

QRCファイルは、プログラムが使用するQtのリソースファイルを増やすことができます。これらのファイルは、EXEファイルにコンパイルされます。あなたは追加のリソースを増やす必要があるときにプレフィックスを付けます。あなたのプレフィックス書き込み右を見てください。接頭辞がある場合は、「/」の典型的な画像ファイルのパスがあるかもしれないので、「:/Resources/Images/aaa.png」。また、QRC、ファイル名とパス名は大文字と小文字が区別されます。私は最終的に疑われるのQt Creatorはの「並行輸入」ではない、いくつかの時間のためにここにカードを持っています。

 

Windowsの5.のQt Creatorを、どのようにVC生成されたダイナミックリンクライブラリをリンクします

この問題は、すべての日に私を悩ませてきました。私はVCによる方法、増加はファイルが含まれていることを考えて、LIBファイルを増やし、その後、コンパイルすることができます。リンク時に驚くべきことに、問題が常に発生します。ヒントはXXXXXに未定義の参照です。手動およびネットワークをチェックし、それは多くの場合、Windows上のユーザmingwの中で遭遇した問題だったが、今のところ何の完璧なソリューションが存在しないようです。エラーの原因は、生成mingwのと矛盾_stdcall関数名VC生成のlibによるものです。一つの解決策は、このようなlibdllとしてmingwの使用ツールの新しいLIBを作成することで、別の解決策は、全体(カーン)を引き継ぐために、コードを再コンパイルすることです。

最後に、私はなぜ技術的にはまだ原因が見つからなかった新しい方法、の自分自身を試してみるか分かりません。これは、広範囲にテストされていません。興味TXを試すことができます。

あなたはABC.LIBファイルへのリンクにしたい場合は、ヘッダファイルはabc.h、ダイナミックリンクライブラリがabc.dllです。その後、プロファイルには、次の行を追加します

インクルードパス+ = D:/ QT /含みます

インクルードパスは、コンパイル変数、店舗のファイルを含める含むすべてのパスで、このディレクトリabc.h.でファイルを保存します その後、次の行を追加します。

LIBS + = D:/Qt/bin/abc.dll

LIBSは、コンパイル変数であるリンクするすべてのライブラリを格納します。ルックは、 "ABC.LIB" ああ、はい、 "abc.dll" ではありません。その魔法は、とても成功した(LIBファイルを削除することができます)をリンクすることができました。本研究のようにTXは、研究を研究することができますmingwのやって正確にどのように。

 

ファイルディレクトリを交換した後、6 Qtのプロジェクトはコンパイルに失敗しました

QtのCreatorは中国のパス名のコンパイル時間をサポートしていません。$$引用(C:/ MYLIBS /エクストラのlibs / extra.lib)あなたがプロファイルに参加したい場合は、スペースを含むパスについては、次のような、$$を指定するには引用符を使用する必要があります。また、あなたが「/」の下にWindowsに慣れている場合、それは、Qtのパス「/」を使用しての練習をあなたの習慣を変えるために変更することが最善です。


この記事では、CSDNのブログから来て、ソースを明記してください、再現:http://blog.csdn.net/superjoel/archive/2010/02/21/5314225.aspx

公開された15元の記事 ウォンの賞賛2 ビュー50000 +

おすすめ

転載: blog.csdn.net/imhikaru/article/details/5983970