Qt:设置QMainWindow的大小

dad*_*od2 26 size qt qmainwindow

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

小智 40

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

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

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


zeF*_*ree 28

感谢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);
Run Code Online (Sandbox Code Playgroud)

  • 对于多显示器设置,这不会有用:\任何想法? (4认同)
  • @Whelhelmsen:您可以在这个问题的答案中使用`QDesktiopWidget :: primaryScreen()`:http://stackoverflow.com/questions/17893328/qt-getting-the-screen-resolution-without-the-extended-监控 (4认同)

小智 5

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

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

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