次のレイアウトのウィジェットを作成しようとしました。
私はいくつかのアプローチを試しましたが、最初のアプローチでは、QVBoxLayoutを使用して、QGridLayoutを使用するさまざまなウィジェットを追加しました(したがって、水平方向のサイズを希望どおりに変更します)。
//pseudo code, just to show what I tried...
myHeaderWidget::myHeaderWidget() {
QGridLayout* layout = new QGridLayout;
layout->addWidget(new QCheckBox(), 0, 0, 1, -1, Qt::AlignRight | Qt::AlignTop);
setLayout(layout);
}
oneOfMyOtherWidgets::oneOfMyOtherWidgets() {
QGridLayout* layout = new QGridLayout;
layout->addWidget(new QCheckBox(), 0, 0, 1, 1, Qt::AlignLeft | Qt::AlignTop);
layout->addWidget(new QPushButton(), 0, 1, 1, -1, Qt::AlignLeft | Qt::AlignTop);
setLayout(layout);
}
mydialog::mydialog() {
QVBoxLayout* layout = new QVBoxLayout;
setLayout(layout);
layout->addWidget(new myHeaderWidget, 0, Qt::AlignRight);
//here was the third widget containing Descr1 and Description2, as
//drawn in image above
layout->addWidget(new oneOfMyOtherWidgets, 0, Qt::AlignLeft);
}
2番目のアプローチはmydialogのレイアウトとしてQGridWidgetを使用することであり、私の3番目のアプローチはmydialogの同じQGridWidgetにそれらすべてのアイテムを追加することでした。
これらの結果はすべて同じで、私にとっては奇妙な動作になります。これらのダイアログを作成してshow()を呼び出すと、次のいずれかが発生する可能性があります。
- すべてのアイテムは私が望む方法で描かれました。
- 左側のチェックボックスが表示されましたが、右側のボタンはチェックボックスの説明をカバーしていました
- 左側のチェックボックスは正しかったのですが、ボタンが見つかりませんでした。
- ボタンがすべてのスペースを占め、チェックボックスがまったく表示されませんでした。
誰かが私にヒント、私が間違ったことを教えてくれますか、または私が画像に描いたレイアウトを作成する方法を教えてもらえますか?