我有一个带有长QString的窗口小部件窗口,当4K监视器中的adjustsize()
窗口大小为1700x500时。但是当使用1024x768显示器时,当我使用adjustsize()
时,窗口大小为850x500。窗口sizePolicy
为expanding
。什么功能是让我的小部件使用低分辨率显示器中的所有资源?在示例中我想使用所有宽度分辨率,因此在1024监视器中,窗口宽度大小也与监视器大小一样大。
这是我使用的代码
void ConfigDialog::InitializeWindowSize()
{
QDesktopWidget desktop;
QRect screenGeometry = QApplication::desktop()->availableGeometry(desktop.screenNumber(this));
this->setMaximumSize(screenGeometry.width(), screenGeometry.height());
this->setGeometry(0,0,screenGeometry.width(), screenGeometry.height());
if(this->width() > 1024 && screenGeometry.width() <= 1024)
{
this->setGeometry(QApplication::desktop()->availableGeometry(desktop.screenNumber(this)));
}
adjustSize();
}
答案 0 :(得分:1)
您可以通过调用QDesktopWidget :: availableGeometry()找到小部件所在屏幕的可用几何图形,如下例所示:
#include <QApplication>
#include <QDesktopWidget>
#include <QLabel>
int main(int argc, char ** argv)
{
QApplication app(argc, argv);
QLabel * lab = new QLabel("Hello!");
lab->setGeometry(qApp->desktop()->availableGeometry(lab)); // make the label take up the entire screen!
lab->show();
return app.exec();
}