如何在后台启动应用程序,即不显示GUI?

use*_*898 0 qt4

我正在使用Qt拍摄截图(丝网印刷).

QPixmap::grabWindow(QApplication::desktop()->winId());
Run Code Online (Sandbox Code Playgroud)

我希望应用程序在后台启动,即我希望它在启动时隐藏(甚至在控制台模式下运行).
我怎么能在Qt中这样做?

zeF*_*ree 6

我想我理解你的问题了.
(据我所知:)
你需要一个应用程序 - 在执行时,不显示小部件并在后台运行.

要实现此目的,您必须尝试使用​​系统托盘方法 - 在应用程序运行时,系统托盘中会出现一个图标,屏幕上不会显示对话框/窗体/窗口.现在,当您运行应用程序时,您可以使用以下代码:

[main.cpp]

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

    // this is the important bit
    app.setQuitOnLastWindowClosed(false);

    Class object;
    // do not call object.show()
    // but do remember to setup and invoke
    // system tray icon in the constructor

    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

当然还有很多其他的东西需要设置,对于它们我建议你参考系统托盘图标示例.最重要的是,如果你遵循这种方法,你的应用程序将运行,但屏幕上不会显示任何内容.

在此之后,如果您正在寻找一种调用应用程序的方法 - 那么您可以更深入地为您的应用程序提供全局快捷方式,这可以通过使用QxtQxtGlobalShortcut类来实现.

我希望我已正确理解问题并提供了适当的解决方案.
请评论我是否朝着正确的方向前进.