我使用Qt布局系统问题。第一张照片是我得到的,第二张是我想要的。 我有一个垂直分离器和两个小部件。第一器具已扩大政策和拉伸系数为1。第二个具有最小高度的政策,minimumHeight 100和拉伸系数0开始后的结果应该是第二张图片,但实际上它是第一张照片,我需要手动将分流下来。问题在哪里?Qt的布局系统(的QTextEdit还没有最小尺寸)
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSizePolicy sp;
QSplitter * splitter = new QSplitter(Qt::Vertical);
splitter->setHandleWidth(1);
splitter->setChildrenCollapsible(false);
sp.setHorizontalPolicy(QSizePolicy::Expanding);
sp.setVerticalPolicy(QSizePolicy::Expanding);
splitter->setSizePolicy(sp);
QWidget * topWidget = new QWidget(splitter);
sp.setVerticalStretch(1);
topWidget->setSizePolicy(sp);
topWidget->setMinimumHeight(200);
QWidget * bottomWidget = new QWidget(splitter);
sp.setVerticalStretch(0);
bottomWidget->setSizePolicy(sp);
QTextEdit * edit = new QTextEdit();
edit->setFrameStyle(QFrame::NoFrame);
edit->setMinimumSize(0, 100);
sp.setVerticalPolicy(QSizePolicy::Minimum);
edit->setSizePolicy(sp);
QVBoxLayout * bottomWidgetLayout = new QVBoxLayout(bottomWidget);
bottomWidgetLayout->addWidget(edit);
bottomWidget->setLayout(bottomWidgetLayout);
splitter->setStretchFactor(0, 1);
splitter->setStretchFactor(1, 0);
this->centralWidget()->layout()->addWidget(splitter);
}
我想GrowFlag政策,但只能通过分光器在用户想要的,这就是为什么我设置QSizePolicy ::最低和拉伸系数为0,那么如果有其他小部件QSizePolicy ::扩展和的stretchFactor> 0,它得到整个“未使用“的空间,所以我的TextEdit应该只有100px的高度。 – Krab
启动屏幕应该类似于第二画面 – Krab
分级式> setStretchFactor(0,1); splitter-> setStretchFactor(1,0); 这些行看衰 – Shf