• 6943阅读
  • 3回复

QSystemTrayIcon托盘图标问题 [复制链接]

上一主题 下一主题
离线cityfantom
 

只看楼主 倒序阅读 楼主  发表于: 2009-02-23
— 本帖被 XChinux 执行加亮操作(2009-02-24) —
通过QSystemTrayIcon实现的了系统托盘图标,通过其上下文菜单弹出一个对话框,做一些设置,关闭对话框后程序就退出了,不知道这是怎么回事啊?大家没有遇到过这个问题,如何解决的?
只看该作者 1楼 发表于: 2009-02-23
因为qt会在最后一个窗口关闭后退出程序

重写closeevent,改成hide
离线cityfantom

只看该作者 2楼 发表于: 2009-02-24
多谢楼上的指点,我还是将我解决问题的方法详细描述一下:
按楼上的指点我重写了closeEvent()方法,但还是不好用,因为我打开的一个模态对话框,关闭对话框是调用了accept()与reject()两个槽,发现是这两个槽关闭对话框时没有触发close事件,我没去看这两个方法的实现,只时看到文档上说这两个方法也是隐藏窗口,于是又重写了这两个槽具体代码如下:
void OptionDialog::closeEvent( QCloseEvent * e )
    {
        this->hide();
        e->ignore();
    }

    void OptionDialog::accept()
    {
        this->setResult(QDialog::Accepted);
        this->close();
    }
    void OptionDialog::reject()
    {
        this->setResult(QDialog::Rejected);
        this->close();
    }
这样就好用了,都市无名者谢谢哈哈
离线autosf
只看该作者 3楼 发表于: 2010-05-25
不用那么麻烦,将主窗口属性setQuitOnLastWindowClosed(),设成False就能达到你的要求。
快速回复
限100 字节
 
上一个 下一个