QTはアプリケーションフレームワークを作成します


この記事は、QTを使用したプログラムフレームワークの作成の概要です。私は開発経験が1年しかなく、ソリューションが必ずしも最良であるとは限りませんが、この記事で提供されている方法は効果的であることが保証されています。そして、開発中に遭遇するピットにヒントを与えます。この記事は完全にオリジナルです。ソースを引用してください。

開発環境

この記事ではQt5.10.0 + VS2015を採用し、インターフェースの作成にはQtデザイナーを採用しています。このスキームは、インターフェイスと処理プログラムを分離して、業界のソフトウェアの開発を容易にするために使用されます。開発環境を構築するためのチュートリアルはたくさんあるので、ここでは繰り返しません。

プロジェクトを作成する

VS2015を開き、[ファイル]-"[新規]-" [プロジェクト]をクリックし、[テンプレート]の[Visual C ++]で[Qt]を選択し、[Qtウィジェットアプリケーション]を選択して、[名前]の位置に[QtMyDemo]と入力します。 ]。[場所]ソリューションが配置されているフォルダーを選択します。下図を参照してください。
図1Qtプロジェクトの作成
ポップアップダイアログボックスで[次へ]を選択すると、[次へ]は省略されます。
次の図の「プリコンパイル済みヘッダー」を確認してください。このオプションは、事前定義されたヘッダーファイルを使用します。[完了]をクリックして、新しいプロジェクトのナビゲーションを完了します。
図2 [プリコンパイル済みヘッダーを使用して画像の説明をここに挿入する]をオンにします
次に、ソリューションウィンドウでマウスの右ボタンをクリックして[QtMydemo]を取得し、[生成]をクリックします。プロジェクトは正常にコンパイルでき、問題なく実行されます。
ここで大きな穴があります。一部のクラスとオブジェクトの下に赤い線があり、定義ファイルが見つからなかったことを示しています。stdafx.hのQtWidgetsでさえ開くことができません。解決策:
メニュー[Qt VS TOOLS]の[Qtプロジェクト設定]をクリックし、qtバージョンを再選択して(別のバージョンに変更し、アプリケーションをクリックしてから戻る)、qt環境を設定します。
ここに画像の説明を挿入

メニューと応答機能を追加

メニューを追加

[リソースファイル]の[QtMyDemo.ui]をダブルクリックし、Qtデザイナを使用してインターフェイスを編集します。
1. [ここに入力]をクリックして、メニュー名を入力します。
目的、別の落とし穴:プロジェクト名にメニュー名の後に名前を付けることができるように、初めて入力するときに英語名を入力する必要があります。
2.メニュー名を変更します。メニューをクリックし、属性エディタで[テキスト]を変更
します。3。メニューにアイコンを追加します。あらかじめ用意されたアイコンファイル、prnファイル、jpgファイルをプログラムディレクトリにコピーします(あらゆる種類のファイルがサポートされており、とても便利です)。この例では、アイコンフォルダーを作成し、アイコンファイルをそのフォルダーにコピーします。
プロパティエディタのアイコンの後ろにあるドロップダウンメニューを選択し、[リソースの選択]-[[リソースの編集]-] [ファイルの追加]をクリックします。次の図の矢印を
ここに画像の説明を挿入選択する必要があります。アイコンファイルを選択して確認すると、アイコンファイルがリソースに追加されます。「new.icon」を選択して「OK」をクリックすると、メニューテキストとアイコンの設定が完了します。下記参照。
ここに画像の説明を挿入

上記の操作に従ってすべてのメニューを変更します(アイコンリソースの追加は、リソース内のアイコンを選択するだけで済みます)。

メニュー応答機能の追加

Qtの信号スロットメカニズムは非常に便利です。インターネット上には多くの情報があります。Qtデザイナを使用して、メニュー応答機能を完了することができます。ここには不便があります。つまり、対応する関数を最初に定義する必要があります。私の操作方法は、最初にボタンを配置してから、多くのスロット機能を追加することです。インターフェイスに多くのコンテンツがある場合、Qtデザイナを使用してシグナルスロット関数を作成するのは面倒です。別の方法は次のとおりです。スロット関数を直接記述します。
QtMyDemo.hのコンストラクターのすぐ下に追加します。

public slots:
	void on_actionFun1_triggered();
	void on_actionFun2_triggered();
。。。。。。

このQtマクロは、「actionFun1」がメニュー属性のオブジェクト名である場合に記述されます。
ここに画像の説明を挿入
次に、QtMyDemo.cpp、on_actionFun1_triggered();に関数本体を追加し、関数本体にブレークポイントを設定し、実行後にコンパイルしてメニューをクリックすると、プログラムが関数本体を呼び出すことがわかります。

ウィンドウレイアウト

1.「ツールバー」と「ステータスバー」を削除します。
2.ウィンドウに2つのウィジェットを追加します。1つはwidgetToolsBar、widgetDialog、labelViewという名前のラベルです。
3.centralWidgetをグリッドレイアウトに設定します。
4. widgetToolsBarの最小の高さと最大の高さは50に設定され、widgetDialogの最小の幅と最大の幅は300に設定されます。これは、ウィンドウサイズを調整しても、上記の2つのスペースのサイズが変更されないようにするためです。一方向と他の方向にいっぱい。labelViewに最大の領域を与えます。
ここに画像の説明を挿入5. widgetToolsBar、widgetDialog、labelViewの背景色を設定します。省略します。
6.入力データ用にtableWidgetプラグインをwidgetDialogに追加します。ここにデータを入力するためのダイアログボックスを埋め込むこともできます。この方法は別の記事で紹介されています。
テスト:Qt Designerでウィンドウの右下隅をドラッグすると、ウィンドウがいっぱいになるとコントロールが正しく設定されます。下記参照:

ここに画像の説明を挿入

ツールバーボタンと対応する機能を追加する

1. 2つのツールボタンをwidgetToolsBarにドラッグし、それぞれtoolButtonFun1とtoolButtonFun2という名前を付けます。
2.属性のテキストを「Function1」、「Function2」に変更します
。3。アイコンを選択します。ここのリソースに2つのpngファイルが追加されました。フォーマットのアイコンのサイズは自由に設定できますが、ICOファイルのサイズは固定されています。追加方法はicoファイルに似ています。
ここに画像の説明を挿入4. toolButtonStyleの値が、アイコンの下のテキストとして選択されます。下記参照。
ここに画像の説明を挿入
5.対応する関数を追加する
メニューファイルを定義する方法と同様に、QtMyDemo.hのコンストラクターのすぐ下に追加します。

public slots:
	void on_toolButtonFun1_clicked();
	void on_toolButtonFun2_clicked();

次に、QtMyDemo.cppに関数本体を追加します。

概要

Qtを使用する設計者は、プログラムインターフェイスフレームワークを簡単に構築し、Qtのマクロメカニズムを使用してメニューとツールボタンの応答関数を追加できます。Qtはアイコンとしてpngおよびjpg画像をサポートしています。操作中に注意が必要なスキルがいくつかあります。そうしないと、コードを記述できません。たとえば、Qtインストールバージョンの設定、メニューのオブジェクト名は英語になります。いくつかのコントロールの親ウィンドウは次のようになります。レイアウト設定時に選択します。
完全なコードのダウンロード

おすすめ

転載: blog.csdn.net/imz2y/article/details/113119910