时间:2010-07-25 14:12:52

标签: qt4

3 个答案:

答案 0 :(得分: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();
}

当然还有很多其他事情要设置,对于他们我建议你参考System Tray Icon Example。最重要的是,如果你采用这种方法,你的应用程序将会运行,但屏幕上不会显示任何内容。

在此之后,如果您正在寻找一种方式来调用该应用 - 那么您可以更深入地为您的应用提供全局快捷方式,这可以通过Qxt来实现' QxtGlobalShortcut课程。

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

答案 1 :(得分:1)

我建议您使用QCoreApplication而不是QApplication:

// main.cpp
#include <QCoreApplication>

int main(int argc, char* argv[])
{
QCoreApplication app(argc, argv);
// ...
return app.exec();
}

顺便说一句,你可以在QtCreator中选择Console App,但我总是使用Empty Project。

答案 2 :(得分:0)

相关问题