Qt 4.8调整窗口全分辨率监视器

时间:2016-11-10 01:03:25

标签: c++ qt4

我有一个带有长QString的窗口小部件窗口,当4K监视器中的adjustsize()窗口大小为1700x500时。但是当使用1024x768显示器时,当我使用adjustsize()时,窗口大小为850x500。窗口sizePolicyexpanding。什么功能是让我的小部件使用低分辨率显示器中的所有资源?在示例中我想使用所有宽度分辨率,因此在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();
}

1 个答案:

答案 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();
}