Qtプログラミング – ソートダイアログ
津路です。
こんにちは、昨日から突然の秋雨前線でダレ気味です。
今回は、ボタンを押すことで、追加のソート条件ボックスが表示されるダイアログを作ってます。
まずは、designer コマンドでQt Designerを起動し、Dialog with Buttons Right テンプレートを選択します。
これで、右側に OK/Cancel ボタンが配置されます。これは、ButtonBoxで、OK/CancelがStandardButtonsの要素として登録されています。
その下側に、ウィジェットボックスからPushButtonを持ってきて、More ボタンとして配置。
次に、左側のデザインです。
グループボックスを配置して、その配下に、ソート条件を選択できるように、コンボボックスをラベルの右に配置。
最初、グループボックスのtitleが、ラベルの上に重なって表示されて困りました。
普通に枠が表示されて、titleが枠に挟まれる状態を期待したのに。。グループボックスのプロパティを色々試しましたが、
よくわからず、と思っていると、コンテキストメニューからレイアウト->格子状に並べるを選ぶと、
枠にはならないですが、配置がよくなりました。更に、レイアウト->サイズ調整を選びます。
さて、このグループボックスをコピーします。
ctrlキーを押しながらグループボックスをマウスで拾ってそのまま下にドローすると、複製配置できます。
新たなグループボックスに名前を振ります。
コンボボックスの要素を作成するには、コンテキストメニューから、「アイテムを編集」を選択します。
できたダイアログのフォームを整列するため、フォームを選択して、コンテキストメニュー->レイアウト->「格子状に並べる」を選びます。
次に「タブオーダーを編集」するモードに入ります。コンボボックスを順にクリック、次にOK/Cancel、最後にmoreボタンをクリックします。
次に、シグナルとスロットを接続します。Ok/Cancelボタンとaccept/rejectは、すでに接続されています。
「シグナルとスロットを編集」モードに入ります。
Moreボタンとは、2つ目のグループボックスの表示スロットと接続します。
マウスで、ボタンからグループボックスに向かって矢印をドローすると、ダイアログが出て、SetVisible(bool)スロットに接続します。
デザインを保存します。
出来上がったデザインを利用するため、このダイアログとQDialogを継承したクラスを宣言します。
1 2 3 4 5 6 7 8 | #include <QDialog> #include "ui_sortdialog.h" class SortDialog : public QDialog, public Ui::SortDialog { Q_OBJECT public: SortDialog(QWidget *parent = 0); }; |