QT应用程序退出后,如何让eglfs不清屏

QT应用程序退出后,如何让eglfs不清屏,仍然显示最后的画面?

我知道 VS + qt plugin 的方式可以
Visual Studio 2019 设置程序结束控制台不关闭_console 不关闭_Loup&卡普的博客-CSDN博客

【以下回答由 GPT 生成】

解决方案

要实现在QT应用程序退出后保留eglfs画面而不清屏,可以通过以下步骤进行操作:

  1. 在QT应用程序退出前,先隐藏主窗口,并在退出时发送一个延迟信号。
#include <QApplication>
#include <QMainWindow>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QMainWindow mainWindow;
    // 设置主窗口不可见
    mainWindow.setVisible(false);

    // 发送延迟信号
    QTimer::singleShot(100, [&a, &mainWindow](){ a.quit(); });

    return a.exec();
}
  1. 在主窗口中重写 closeEvent 函数,在关闭窗口之前隐藏窗口,并发送延迟信号。
#include <QMainWindow>
#include <QCloseEvent>

class MainWindow : public QMainWindow
{
    Q_OBJECT

protected:
    void closeEvent(QCloseEvent *event) override
    {
        // 隐藏窗口
        setVisible(false);

        // 发送延迟信号
        QTimer::singleShot(100, [this, event]() {
            QMainWindow::closeEvent(event);
        });
    }
};
  1. 在.pro文件中添加eglfs选项,并设置环境变量。
QT += core gui
…
TARGET = YourApp
CONFIG += eglfs
…
QMAKE_LFLAGS += -Wl,-rpath,\\$$ORIGIN/plugins
  1. 编译和运行应用程序。
qmake
make
./YourApp

通过以上步骤,你将能够实现在QT应用程序退出后保留eglfs画面而不清屏。

请注意,此解决方案代码展示仅供参考,你可能需要根据你的实际情况进行适当的修改和调整。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^