#c #qt #grid
#c #qt #сетка
Вопрос:
Я пытаюсь установить QGridLayout с четырьмя виджетами, как на изображении ниже:
однако на данный момент мне удалось использовать QGridLayout:
Я не понимаю, как я могу установить разный размер строки для столбцов 0 и 1. Возможно, QGridLayout — неправильный способ сделать это, но я не знаю ни одного другого виджета, который бы справился с этой задачей. У кого-нибудь есть идеи, как этого добиться?
Ответ №1:
Я бы использовал вертикальные и горизонтальные макеты вместо макета сетки. Итак, вам нужны два вертикальных макета и горизонтальный:
// Left side
QLabel *lbl1 = new QLabel(this);
QTableWidget *t = new QTableWidget(this);
QVBoxLayout *vl1 = new QVBoxLayout;
vl1->addWidget(lbl1);
vl1->addWidget(t);
// Right side
// QImage is not a widget, so it should be a label with image
QLabel *lbl2 = new QLabel(this);
QCustomPlot *pl = new QCustomPlot(this);
QVBoxLayout *vl2 = new QVBoxLayout;
vl2->addWidget(lbl2);
vl2->addWidget(pl);
// Create and set the main layout
QHBoxLayout mainLayout = new QHBoxLayout(this);
mainLayout->addLayout(vl1);
mainLayout->addLayout(vl2);
Ответ №2:
Я не думаю, что сетки — это действительно правильный путь…
Вы могли бы попробовать создать горизонтальный макет из 2 QFrames, в котором вы устанавливаете вертикальный макет для каждого из двух виджетов этого «столбца»