ボタンを押すと、ユーザーが項目を選択し、最後に「OK」を押すダイアログが表示されます。このダイアログにスプリッターが必要です。左ペインにはツリーが表示され、右ペインには他の何かが表示されます。どうすれば正しくできますか?
Qtの例自体から:
QSplitter *splitter = new QSplitter(parent);
QListView *listview = new QListView;
QTreeView *treeview = new QTreeView;
QTextEdit *textedit = new QTextEdit;
splitter->addWidget(listview);
splitter->addWidget(treeview);
splitter->addWidget(textedit);
したがって、この例では、ダイアログリソースなしでスプリッターが作成されます。この方法で作成する必要がある場合、Qt Creatorではなくコード内のすべてのコントロールを作成する必要があります。
画面に他のコントロールが必要な場合、これを行う正しい方法は何ですか?
Qt Designerでアイテムを含むスプリッターを簡単に作成できます。
最初にウィジェットをデザイナーのダイアログまたはウィジェットに配置します(レイアウトに配置しないでください)
スプリッターに配置するウィジェットを選択します(CTLを押しながらクリックします)
選択したウィジェットを右クリックして、レイアウトメニューからスプリッターで水平にレイアウトまたはスプリッターで垂直にレイアウトを選択します。
次に、ダイアログにグリッドレイアウトを適用すると、すべてが正常になります。オブジェクトインスペクタービューに次のようなものが表示されます。
Qt Designer(Qt Creatorに統合されています)を使用して、.uiファイルにコントロールを作成できます。 Qt Designer内で、QWidget
オブジェクトをダイアログに追加します。次に、コンストラクターに直接書き込むQDialog派生クラスから、QWidget
オブジェクトを親として使用してQSplitterを作成します。
この方法で、Qt Designerからスプリッターオブジェクトを除くすべてを作成できます。
Qt Designerから直接QSplitter
(QButton
、QCheckBox
...を作成できるように)アイテムを作成することも可能だと思います。