QGridLayout с разным размером ячеек

#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, в котором вы устанавливаете вертикальный макет для каждого из двух виджетов этого «столбца»