【问题标题】:Qt Multiple system tray iconsQt 多系统托盘图标
【发布时间】:2013-03-06 18:13:15
【问题描述】:

我不确定这是怎么回事,但我认为这是我希望应用程序突然关闭的时候(例如,当用户在 SSL 错误后选择不继续时,应用程序将关闭)使用方法 exit(EXIT_FAILURE);

我注意到有多个系统托盘图标,每次运行我的应用程序时都有一个。

exit(EXIT_FAILURE); 会导致这种情况吗?有没有办法正确处理系统托盘对象?

谢谢

【问题讨论】:

    标签: c++ qt qtwebkit system-tray


    【解决方案1】:

    如果你想退出,最好让Qt对它做些什么,这样它就可以自己清理了。

    从代码中的任何位置调用 qApp->quit() 或 QApplication::quit()。 (qApp 是全球性的) 你也可以使用exit()。

    #include <QApplication> 访问。

    您可以将“EXIT_FAILURE”传递给exit():

    #include <QApplication>
    QApplication::exit(EXIT_FAILURE)
    

    如果您不使用 Qt GUI,QCoreApplication 具有相同的功能:

    #include <QCoreApplication>
    QCoreApplication::exit(EXIT_FAILURE)
    

    请注意,exit() 和 quit() 不会立即关闭您的程序,而是结束您对 application.exec() 的原始调用。在某些平台上,在某些情况下,exec() 不会返回,而在其他平台上会。

    quit() 和exit() 的区别在于,quit() 是信号和槽的槽,而quit() 只是调用exit(0)。

    【讨论】:

    • 如果要提供失败退出码,可以使用QCoreApplication::exit()代替。
    • @ypnos:当我编辑我的答案时,忍者会延迟 30 秒左右。 =)
    • 但你错了。 quit() 不带参数,exit() 确实带退出状态参数。
    • 感谢您的意见:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 2011-04-16
    • 2011-06-25
    • 2023-03-06
    相关资源
    最近更新 更多