グラフィカルツールキットを使用してプロジェクトを開始するたびに、最初の競合の1つは、ビジュアルデザインとウィジェットレイアウトの処理方法の決定で発生します。グラフィカルツールまたはハンドコーディングですか。
ほとんどの人は個人的な好みに基づいて決定するため、これは非常にトリッキーで主観的な質問です。また、グラフィックツールの品質にも大きく依存します。この場合、QTライブラリの最新バージョンだけに焦点を当てたいと思います。どちらの方法が良いかを議論するつもりはありません。最善の答えは、プロジェクトによって異なります。
私が欲しいのは、いくつかのプロジェクトの後の経験に基づいた、偏見のない良い記事への参照です。この記事では、両方の選択肢のトレードオフについて説明する必要があります
私はすべてを手作業でコーディングすることから始めましたが、最近ではほとんどのフォームでQtDesignerの使用に切り替えています。各ポジションのメリットは次のとおりです。
Qt Designerを使用
ハンドコーディング
その他
QWizard
フォームの場合、ページごとに異なるUIファイルを使用する必要があることがわかりました。すべてを1つで行うことはできますが、あらゆる種類のカスタム方法でページ間を通信するのは非常に厄介になります。要約すると、私はQt Designerから始めて、可能な限りそれを取得し、そこから手動でコーディングします。これは、Qt Designerが生成するものの良い点の1つです。これは、クラスのメンバーになる別のクラスであり、必要に応じてアクセスして操作できます。
私の答えは、PyQt4(Qt 4へのPythonバインディング)とOpenGLを使用して生化学アプリケーションを開発した2年間に基づいています。パフォーマンスが重要なアルゴリズムにのみC++を使用したため、C++ Qtは実行していません。とは言うものの、PyQt4 APIはQt4に非常に似ているため、ここでも多くのことが当てはまります。
Qt Designer
ハンドコーディング
良い
悪い
ヒント
ウィンドウの作成に飛び込むだけではいけません。紙に、またはBalsamiq Mockupsなどのツールを使用して、いくつかの可能なデザインをすばやくスケッチすることから始めます。 Qt Designerでこれを行うことはできますが、それが最良のデザインであるかどうかを判断する前に、ウィンドウを正しく表示するために多くの時間を費やすのはあまりにも魅力的だと思います。
Qt Designer for PyQtを使用する場合、pyuic4を実行して* .uiファイルをPythonソースファイルにコンパイルするという追加の手順があります。この手順を忘れて、頭を悩ませるのは簡単です。変更が機能しなかった理由。
UIを手動でコーディングする場合は、レイアウトコードをある場所に配置し、シグナルとスロットを別の場所に配置することをお勧めします。これを行うと、アプリケーションロジックに影響を与えることなく、ウィジェットをウィンドウに配置する方法を簡単に変更できます。または、すべてのレイアウトコードを調べなくても、動作を変更できます。
Qtをお楽しみください! Java Swing for workを使用しているので、それが恋しいです。
私はデザイナーを使用してダイアログをレイアウトする傾向がありますが、メインコードですべてのイベント処理を行います。また、すべてのメインウィンドウ、ツールバー、メニューを直接コードで実行します。
デザイナーはただイライラしています-まともなドラッグアンドドロップサイザーベースのデザイナーが10年以上前から存在しているので残念です
これは、アプリケーションに必要なさまざまなウィンドウ/パネルの数によって異なります。数が少ない場合は、グラフィカルツールを使用してください。いくつかのウィンドウを完全に設計する方がはるかに高速です。数が多い場合、グラフィカルツールはプロトタイプにのみ使用できます(使用する必要があります)。許容可能なコストでアプリケーション全体の変更を行えるように、レイアウトをコーディングする必要があります。
これには、アプリケーションのUIがどのように機能するかのモデルの作成、および実行時にウィジェットを動的に追加および削除することが含まれます。 (異なる環境での)そのようなモデルの優れた例については、オブジェクトブラウザを作成するための グラマーモデル を見てください。
私はそれがトリッキー/主観的であるという提案に反対します(少なくとも他の開発の選択肢よりも)。決定する基準を思い付くのは簡単です。個人的な経験と好みは、異なるウィンドウの数をいつ少なくするかを決定するため、そのために重要です。同じことが工具の品質にも当てはまります。
私は両方の組み合わせを使用します:
X、y座標については、Designerが最適です。
他の多くのUIプロパティなどをコードで設定できます。
UIを完全に手作業でコーディングしようとすると、非常に時間のかかるプロジェクトになると思います。 HTMLテーブルを設定するほど簡単ではありません。
はい、バージョン4は悪いですが、バージョン3を使用したことのある職場の人々は、それは本当に悪いと言いました。たくさんのクラッシュ。
私は、仲間のQTerと一緒に、バージョン5が改善されることを心から望んでいます。
これは古い質問ですが、これがお役に立てば幸いです。一人の男の経験。