35

我是 Qt 的新手,所以我想知道是否有办法将 a 的大小设置QMainWindow为(例如)用户桌面的 70%。
我尝试了拉伸因子,但没有奏效。QWidget::setFixedSize工作,但只有一个像素数,我想。

4

3 回答 3

50

在 QMainWindow 构造函数的某个地方,执行以下操作:

resize(QDesktopWidget().availableGeometry(this).size() * 0.7);

这会将窗口大小调整为可用屏幕空间的 70%。

于 2014-11-04T18:46:20.677 回答
36

感谢 Amir eas。问题已经解决了。这是它的代码:

#include <QDesktopWidget>
#include <QMainWindow>
...
QDesktopWidget dw;
MainWindow w;
...
int x=dw.width()*0.7;
int y=dw.height()*0.7;
w.setFixedSize(x,y);
于 2013-04-30T10:34:07.407 回答
4

您可以使用 中的availableGeometry(QWidget*)方法QDesktopWidget,这将为您提供此小部件当前所在屏幕的几何形状。
例如:

QRect screenSize = desktop.availableGeometry(this);
this->setFixedSize(QSize(screenSize.width * 0.7f, screenSize.height * 0.7f));

thisMainWindow 指针在哪里。这将在使用多个屏幕时起作用。

于 2014-03-13T06:19:36.620 回答