我尝试使用四个小部件设置QGridLayout,如下图所示:
然而,我目前使用QGridLayout管理的是:
我不知道如何为第0列和第1列设置不同行的大小。也许QGridLayout不是正确的方法,但我不知道任何其他小部件会做的伎俩。 有谁知道如何实现这个目标?
答案 0 :(得分:3)
我会使用垂直和水平布局而不是网格布局。所以你需要两个垂直布局和水平布局:
// 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);
答案 1 :(得分:2)
我不认为网格确实是去这里的方式......
您可以尝试制作2个QFrame的水平布局,在其中设置垂直布局,每个布局都包含该“列”的两个小部件