Qt を使用して C++ アプリケーションを開発しています。コードをコンパイルしてハードコーディングせずに、Qt Designer ui ファイルをそのまま (XML で) コードで使用したいと考えています。この URL のサンプル コードを使用しています。
この例では、XML を QWidget に適用し、QWidget を表示します。QMainWindow を使用してこれをどのように実装できますか?
Qt を使用して C++ アプリケーションを開発しています。コードをコンパイルしてハードコーディングせずに、Qt Designer ui ファイルをそのまま (XML で) コードで使用したいと考えています。この URL のサンプル コードを使用しています。
この例では、XML を QWidget に適用し、QWidget を表示します。QMainWindow を使用してこれをどのように実装できますか?
これを行うには、少なくとも 2 つの方法があります。
Qt Designer を使用して、垂直レイアウトを中央のウィジェットに追加します。子のないウィジェットではこれを行うことができないため、ボタンを追加してレイアウトを適用し、そのボタンを削除するだけです。レイアウトに「main_layout」などの適切な名前を付けます。
例からコンストラクターの実装をコピーし、次の行を変更します。
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(formWidget);
setLayout(layout);
これに:
ui->main_layout->addWidget(formWidget);
メイン ウィンドウのフォームを操作する必要はありません。例からコンストラクターの実装をコピーし、レイアウトに関する同じ行を次のように変更します。
setCentralWidget(formWidget);
自動的に生成された中央のウィジェットは、動的に読み込まれたフォームに完全に置き換えられます。