QMainWindow :根据屏幕大小设置小部件大小
Posted
技术标签:
【中文标题】QMainWindow :根据屏幕大小设置小部件大小【英文标题】:QMainWindow : Set widgets size with respect to screen size 【发布时间】:2015-04-14 14:30:11 【问题描述】:我有一个继承自 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% 的空间。如果调整主窗口的大小但保持这些比率,我还希望小部件扩展或收缩。
【问题讨论】:
【参考方案1】:当您将小部件放入布局时,您可以指定其拉伸因子:
QHBoxLayout *layout = new QHBoxLayout();
layout->addWidget(display, 3);
layout->addWidget(current, 7);
http://doc.qt.io/qt-5/qboxlayout.html#addWidget
【讨论】:
太棒了。谢谢你。不敢相信我忽略了这一点。以上是关于QMainWindow :根据屏幕大小设置小部件大小的主要内容,如果未能解决你的问题,请参考以下文章
对 QMainWindow 的大小调整做出反应以调整小部件的大小