启动时的 Qt 全屏

新手上路,请多包涵

我想根据设置全屏启动应用程序(MacOS 10.8.x、Qt 5.1.1、C++):

主文件

#include "MainWindow.h"
#include <QApplication>

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

    return a.exec();
}

主窗口.cpp

 #include "MainWindow.h"
#include "ui_MainWindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

主窗口.h

 #ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

设置操作很完美,就像一个魅力。但是 this->showFullScreen() 做了一些非常丑陋的事情:

  1. 全屏显示窗口
  2. 在中心以正常大小显示窗口
  3. 将窗口缩放到全屏

如何避免这种情况?

原文由 Thomas Ayoub 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

我已经遇到了这个问题,一个非常好的解决方案是将全屏切换延迟一秒(使用 QTimer ):

 QTimer::singleShot(0, this, SLOT(showFullScreen()));

原文由 Martin Delille 发布,翻译遵循 CC BY-SA 4.0 许可协议

我使用 QWidget 作为我的主窗口,但我让它与这个简单的行完美配合:

 this->showMaximized();

运行时,它立即流畅地填满了整个屏幕。

原文由 Zac 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏