Qt: Set size of QMainWindow

2019-04-18 14:41发布

I'm new to Qt, so I wonder whether there is a way to set the size of a QMainWindow to (for example) 70% of the user's desktop.
I tried the stretch factor but it didn't work. QWidget::setFixedSize worked but only with a pixel number, I think.

3条回答
倾城 Initia
2楼-- · 2019-04-18 15:07

You can use the availableGeometry(QWidget*) method in QDesktopWidget, this will give you the geometry of the screen that this widget is currently on.
For example:

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

Where this is the MainWindow pointer. This will work when using multiple screens.

查看更多
一夜七次
3楼-- · 2019-04-18 15:11

Somewhere in your QMainWindow constructor, do this:

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

This will resize the window to 70% of the available screen space.

查看更多
Anthone
4楼-- · 2019-04-18 15:19

Thanks to Amir eas. The problem is solved. Here's the code for it:

#include <QDesktopWidget>
#include <QMainWindow>
...
QDesktopWidget dw;
MainWindow w;
...
int x=dw.width()*0.7;
int y=dw.height()*0.7;
w.setFixedSize(x,y);
查看更多
登录 后发表回答