Qt:设置QMainWindow的大小

Qt:设置QMainWindow的大小

问题描述:

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

+1

请参阅此链接: 而且你可以计算出的70%。 – 2013-04-29 14:07:52

+0

amir继续并作为答案发布。 – UmNyobe 2013-04-29 14:10:28

+0

好的,谢谢,我会试试:) – dadod2 2013-04-29 14:16:57

感谢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); 
+2

这对于多显示器设置不太有用:\有什么想法? – chwi 2014-03-12 11:48:08

+2

@Wilhelmsen:你可以在这个问题的答案中使用'QDesktiopWidget :: primaryScreen()':http://*.com/questions/17893328/qt-getting-the-screen-resolution-without-the-extended -监控 – vsz 2015-01-14 08:38:39

可以在QDesktopWidget使用availableGeometry(QWidget*)方法,这会给你屏幕的几何形状,这个构件是目前。
例如:

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

this是主窗口指针。 这将在使用多个屏幕时起作用。

在某处,QMainWindow的构造函数,这样做:

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

这将窗口调整到可用的屏幕空间的70%。