我刚接触Qt,想知道是否有一种方法可以将QMainWindow
的大小设置为用户桌面大小的70%(例如)。
我尝试了拉伸因子,但它没有起作用。QWidget::setFixedSize
可以使用像素进行设置,但我认为只能使用该方式。
我刚接触Qt,想知道是否有一种方法可以将QMainWindow
的大小设置为用户桌面大小的70%(例如)。
我尝试了拉伸因子,但它没有起作用。QWidget::setFixedSize
可以使用像素进行设置,但我认为只能使用该方式。
resize(QDesktopWidget().availableGeometry(this).size() * 0.7);
这将把窗口大小调整为可用屏幕空间的70%。请注意保留HTML标记格式。resize(640, 480)
这样简单地做。 - Timo Ernst感谢 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);
QDesktopWidget :: primaryScreen()
пјҢй“ҫжҺҘеҰӮдёӢпјҡhttps://dev59.com/questions/6mMm5IYBdhLWcg3wFLw4 - vsz您可以使用QDesktopWidget
中的availableGeometry(QWidget*)
方法,它可以为您提供当前小部件所在屏幕的几何形状。例如:
QRect screenSize = desktop.availableGeometry(this);
this->setFixedSize(QSize(screenSize.width * 0.7f, screenSize.height * 0.7f));
这里的this
是指MainWindow指针。
当使用多个屏幕时,这将起作用。
针对Qt6,更新@muesli的回答,QDesktopWidget
在Qt5中被弃用,在Qt6中已被删除。
新的等效代码是:
resize(QGuiApplication::primaryScreen()->availableGeometry().size() * 0.7);