自動的に生成されたメインフォーム(メインウィンドウには)、以下のファイルがあります。
観察力の鋭い人は、名前空間宣言があり、ヘッダファイルにあります
名前空間 宇井 {
クラス メインウィンドウ。
}
これは次のようにメインフォームと同じ名前のカスタムクラスメインフォームのクラスです。
クラスの メインウィンドウ : 公共 QMainWindow
{
...
プライベート:
宇井:: メインウィンドウ * UI ; //ここではそれがメインウィンドウすでに上記と指摘したUI定義されたクラス。ここだけで同じ名前。
}
しかし、彼らはすべての二つの異なるものですが、少し特別なタッチ。右最初にメイン・ウィンドウクラスの機能を実装し、以下のように、:
名前空間 宇井 {
クラス メインウィンドウ: 公共 Ui_MainWindow {}。
} // 名前空間の 宇井
このコードの#include 「ui_mainwindow.h」ヘッダファイル。Ui_MainWindowクラス定義は、それがメインウィンドウに継承されているメンバ関数setupUiを持って、このファイルでもあります。setupUi初期化関数は、キー嘘です。これは、関数の引数に渡されたパラメータが処理されますしています。以下に示すように、それはフォームのクラスのサイズ、ツールバー、初期セットアップメニューバーを通過しました。
空 setupUi ( QMainWindow *メインウィンドウ)
{
もし (メインウィンドウ- >のobjectName 。()のisEmpty ())
メインウィンドウ- > setObjectName ( QStringLiteral ("メインウィンドウ" ));
メインウィンドウ- >リサイズ(400 、 300 )。
menuBar = 新しい QMenuBar (メインウィンドウ)。
menuBar - > setObjectName ( QStringLiteral ("のmenuBar" ));
メインウィンドウ- > setMenuBar (のmenuBar )。
mainToolBar = 新しい QToolBar (メインウィンドウ)。
mainToolBar - > setObjectName ( QStringLiteral ("mainToolBar" ));
...
戻る私たちのクラスのカスタムのクラスの メインウィンドウ : 公共 QMainWindow 。自動的に生成され、それにシステムコンストラクタは、最初の作成のUI メインウィンドウをすることによって setupUiを通過メインフォームオブジェクトを初期化します。次のように:
メインウィンドウ::メインウィンドウ(QWidgetの *親) :
QMainWindow (親)、
UI (新しい新しい 宇井:: メインウィンドウは)//新しい、初期化メンバオブジェクトを作成します。
{
UI - > setupUi (この); //で setupUi 機能は、着信カスタムクラスのメインフォームを初期化します
}
最後に、新しいのデストラクタのUI メインウィンドウ型オブジェクトのUIリリースメモリ。
メインウィンドウ::〜メインウィンドウ()
{
削除 UIを。
}