【问题标题】:Qt 4.8 Adjust window full resolution monitorQt 4.8 调整窗口全分辨率显示器
【发布时间】:2016-11-10 01:03:25
【问题描述】:

我有一个带有长 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();
}

【问题讨论】:

    标签: c++ qt4


    【解决方案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();
    }
    

    【讨论】:

    • 我建议不要创建QDesktopWIdget 的新实例,而是使用app 的实例,如app.desktopWidget().availableGeometry()
    猜你喜欢
    • 1970-01-01
    • 2022-11-13
    • 2020-07-21
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    相关资源
    最近更新 更多