2015-12-02 94 views
0

我有一个可用的qt应用程序。它不是一个MainWindow应用程序,迄今为止根本没有GUI元素。它在Linux机器启动时运行(作为后台服务)。但是,它必须等待大约40-60秒,直到它可以在IP/DHCP对其自身进行排序时启动。控制台应用程序中的Linux Qt QSystemTrayIcon

所以我想给用户一些反馈。我认为添加系统托盘图标看起来更专业一点,然后终端(虽然我可以这么做)可能会很好。

但是,在阅读QSystemTrayIcon的文档后,我仍然不确定是否必须将它用作MainWindow样式应用程序的一部分(即,是否需要添加主窗口并使sys托盘成为其中的一部分),或者我可以在我的“控制台”风格的应用程序中运行它吗?

回答

1

我创建了一个控制台应用程序与系统托盘我自己的win7,所以我没有关于Linux客户端的信息。它不显示任何控制台,它只使用日志输出和systemtray来显示“用户可读的内容”。

您的应用程序需要使用QApplication而不是QCoreApplication以绘制小部件并创建QSystemTrayIcon以显示系统托盘图标。现在只需按照您的要求填写菜单即可。

main.cpp代码可能是这样的:

int main(int ac, char** av){ 
    QApplication a(ac, av); 
    QSystemTrayIcon i; 
    QMenu* m = i.contextMenu(); 
    m->addAction(tr("hello world!")); 
    i.show(); 
    return a.exec(); 
} 

欢呼

+0

酷,但这也是在Linux中工作过(主要是)......但我不能设置图标出于某种原因,但可以发布一个单独的问题。 –

+0

你不能设置它?生病需要搜索这个问题;) – Zaiborg

+0

是啊....我把这个问题在这里:http://stackoverflow.com/questions/34041283/qt-qsystemtrayiconseticon-or-qicon-not-working,但后进一步阅读。 ..它似乎也许它不工作有一个bug的某些发行版的linux :( –