Я пытался создать виджет, имеющим следующую структуру:Проблемы с установкой виджетов на QGridLayout
Я попробовал несколько подходов, в моем первом, я использовал 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);
}
Второй подход заключается в использовании QGridWidget в качестве макета для MyDialog, и мой третий подход, чтобы добавить все те элементы, к тому же QGridWidget из MyDialog.
Всех эти результаты в том же, для меня странного поведения: В любое время я создал этот диалог и призвал шоу(), один из следующих могут произойти:
- всех детали были сделаны в каким я хотел.
- были показаны флажки слева, но кнопки справа были обложки описания флажка
- флажки слева были верны, но я не мог найти кнопки.
- Кнопки заняли все пространство, и вы не могли видеть никаких флажков.
Может кто-нибудь дать мне подсказку, что я сделал не так, или показать мне способ создания макета, который я нарисовал?
Спасибо, что показал ваш пример, я не знал, что вы можете выровнять во время addWidget: D – Saebin