【问题标题】:How to maximize QDialog to full screen?如何最大化QDialog到全屏?
【发布时间】:2019-08-02 18:10:59
【问题描述】:

当任务栏(位于屏幕底部)不可见时,我的应用程序处于全屏模式。在此应用程序中,可以显示一个对话框,但如果我将其最大化(使用最大化按钮或以编程方式),对话框将不会全屏显示。它看起来就像任务栏在那里。

那么是否可以将对话框最大化到全屏?但有必要在其标题栏上保留用于最小化、最大化和关闭的按钮。

编辑:

我没有添加任何代码,因为我发现没有任何用处。但是好的,这是不起作用的代码:

// main.cpp

int main(int argc, char *argv[])
{
   QApplication a(argc, argv);
   MainWindow w;
   w.showFullScreen();

   return a.exec();
}


// mainwindow.cpp

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    QDialog *dialog = new QDialog(this);

    // only for better visibility of the dialog
    dialog->setStyleSheet("background: green");

    // This does not work because the dialog is displayed without a titlebar 
    // and buttons for minimizing, maximizing and closing.
    // dialog->setWindowState(Qt::WindowFullScreen);
    // dialog->show();
    // or (it is the same)
    // dialog->showFullScreen();

    // This does not display the dialog on the full screen.
    dialog->showMaximized();
}

// mainwindow.h

class MainWindow : public QMainWindow
{
        Q_OBJECT

    public:
        MainWindow(QWidget *parent = 0);
        ~MainWindow() {}
};

【问题讨论】:

标签: qt qt5 qdialog


【解决方案1】:

这取决于您的任务栏设置。

fi。在 windows10 上:

如果我使用“在桌面模式下自动隐藏任务栏”开 那么最大化将只占用任务栏上方的屏幕部分。

如果上述设置关闭 然后最大化将占据整个屏幕。

您还可以使用 QScreen 查询可用空间并控制代码中的最大大小: Qt Docs QScreen

【讨论】:

  • 这个任务栏设置对我来说正好相反。但是,在这种情况下它没有用。对话框的最大尺寸没有限制,如果我设置了一个特定的值,最大化按钮就会被禁用。问题是我不知道确定最大化对话框的大小。没有QDialog或QWidget的任何属性或方法可以重新实现,这有助于解决它。
猜你喜欢
  • 2011-06-23
  • 1970-01-01
  • 2013-08-07
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多