我有一个继承自QMainWindow的Qt类。该类的构造函数创建两个小部件,这些小部件被添加到水平布局对象中,如下所示:
MyWindow::MyWindow()
{
resize(QDesktopWidget().availableGeometry(this).size());
display = new MyWidget(this);
display->setSizePolicy(QSizePolicy::Expanding,
QSizePolicy::Expanding);
current = new MyWidget(this);
current->setSizePolicy(QSizePolicy::Expanding,
QSizePolicy::Expanding);
QHBoxLayout *layout = new QHBoxLayout();
layout->addWidget(display);
layout->addWidget(current);
QFrame* frame = new QFrame();
frame->setFrameShape(QFrame::StyledPanel);
frame->setLayout(layout);
setCentralWidget(frame);
show();
}
这目前显示小部件的一侧。但是,我想做的是让其中一个小部件占据水平空间的 30%,而另一个占据另外 70%。我还希望小部件在调整主窗口大小但保持这些比例时扩展或收缩。
将小部件放入布局时,可以指定其拉伸系数:
QHBoxLayout *layout = new QHBoxLayout();
layout->addWidget(display, 3);
layout->addWidget(current, 7);
http://doc.qt.io/qt-5/qboxlayout.html#addWidget