QMainWindow :根据屏幕尺寸设置小部件尺寸
QMainWindow : Set widgets size with respect to screen size
我有一个继承自 QMainWindow 的 Qt class。 class 的构造函数创建了两个添加到水平布局对象的小部件,如下所示:
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();
}
这当前显示了小部件的一面。但是,我想做的是让其中一个小部件占据水平 space 的 30%,而另一个占据另外 70%。如果调整主 window 的大小但保持这些比率,我还希望小部件扩展或收缩。
将小部件放入布局时,您可以指定其拉伸因子:
QHBoxLayout *layout = new QHBoxLayout();
layout->addWidget(display, 3);
layout->addWidget(current, 7);
我有一个继承自 QMainWindow 的 Qt class。 class 的构造函数创建了两个添加到水平布局对象的小部件,如下所示:
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();
}
这当前显示了小部件的一面。但是,我想做的是让其中一个小部件占据水平 space 的 30%,而另一个占据另外 70%。如果调整主 window 的大小但保持这些比率,我还希望小部件扩展或收缩。
将小部件放入布局时,您可以指定其拉伸因子:
QHBoxLayout *layout = new QHBoxLayout();
layout->addWidget(display, 3);
layout->addWidget(current, 7);