Qtプログラミング – ソートダイアログ続き
![株式会社クローバーフィールドの経営理念](https://www.cloverfield.co.jp/wp/wp-content/uploads/2018/10/cropped-cfilogo-1-150x150.png)
津路です。
引き続き、sortdialogのソースを作成します。
1 2 3 4 5 6 7 8 | #include <QtGui> #include "sortdialog.h" SortDialog::SortDialog(QWidget *parent) : QDialog(parent) { setupUi(this); secondaryGroupBox->hide(); //ここで2つ目のグループボックスを隠しておく } |
次に、mainプログラムです。
1 2 3 4 5 6 7 8 9 10 | #include <QApplication> #include "sortdialog.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); SortDialog *dialog = new SortDialog; dialog->show(); return app.exec(); } |
最後に、qmake -project コマンドで、uiからproファイルを作成し、qmake sort.pro コマンドで、Makefileが出来上がります。
さて、make してみると、エラーがたくさん出ました。
/usr/include/qt4/QtCore/qnamespace.h:54:1 error: unknown type name ‘namespace’ namespace
以上から始まって、ダラダラと長いエラーがたくさん出ました。
ソースと、sort.proやuiを探ると、名前が一致していませんでした。
フォームの名前をSortDialogに修正して、qmake -project, qmake sort.proでも同じ。
moc_sortdialog.cppが生成されてないので、おかしいなと考えていると、
main.c になってたのを cppに変更すると、無事コンパイル・リンクできました。
Moreボタンをクリックすると、2番めのグループボックスが表示され、再度クリックすると、非表示となりました。
同時に、ダイアログが縦に伸び、自動的に配置が調整されます。
これで動きますが、大きさがマウス操作で可変ため、大きくすると不格好です。
layout()->SetSizeConstraint(QLayout::SetFixedSize)
にて、固定とします。
次に、コンボボックスの要素を、プログラムで設定します。