• 4997阅读
  • 5回复

[讨论]QSystemTrayIcon系统托盘 [复制链接]

上一主题 下一主题
离线yaoweimin168
 

只看楼主 倒序阅读 楼主  发表于: 2012-10-26
关键词: QSystemTrayIcon
最近做了一个类似闹钟的提醒小系统,并且有像QQ那样的托盘功能。当我点击关闭的时候,自动最小化到托盘,当我右击托盘的时候有两个选项可以继续隐藏,可以退出!小系统的主要功能是当我定点的时候,会弹出一个对话框,可以点击yes或no,具体代码是
                msgBox.setWindowTitle(tr("Time out"));                msgBox.setText(tr("Dear %1,now is %2,you should %3!").arg(userName).arg(Time).arg(Event));                msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);                msgBox.setDefaultButton(QMessageBox::Yes);                if(msgBox.exec()==QMessageBox::Yes)                {                    msgBox.hide();                    is_ok_ = true;                }                else                {                    msgBox.close();                }当系统处于推盘状况下,弹出对话框的时候,点击yes,整个系统全部退出,我该怎么解决?
离线ggkuroky
只看该作者 1楼 发表于: 2012-10-26
我想问一下,你是在一个函数里面创建的QMessageBox吗?如果是这样的话,函数结束了,这个对象就销毁了,不知道我说的对不对呀,你看看吧,不对,再说吧
相信自己,天道酬勤!
离线ggkuroky
只看该作者 2楼 发表于: 2012-10-26
void Window::closeEvent(QCloseEvent *event)
{
     if (trayIcon->isVisible()) {
         QMessageBox::information(this, tr("Systray"),
                                  tr("The program will keep running in the "
                                     "system tray. To terminate the program, "
                                     "choose <b>Quit</b> in the context menu "
                                     "of the system tray entry."));
         hide();
         event->ignore();
     }
}
这样子可以吗?你试试
相信自己,天道酬勤!
离线roywillow

只看该作者 3楼 发表于: 2012-10-26
建议把代码重新排版一下,放到[code]标签中
印象中我好像也遇到过类似的现象……但是好像没解决……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线ywchen2000

只看该作者 4楼 发表于: 2012-10-27
    this->setAttribute(Qt::WA_QuitOnClose, false);  在window的构造函数中加入  
  this->setAttribute(Qt::WA_QuitOnClose, false);
应该就可以了

ipanforlinux 金山快盘LINUX版本
qnotepad  一个功能强大的文本编辑器
欢迎访问http://www.ipanx.net
离线ywchen2000

只看该作者 5楼 发表于: 2012-10-27
系统处于托盘状态,你点击关闭窗口,系统会认为这是最后一个窗口。所以就退出了
ipanforlinux 金山快盘LINUX版本
qnotepad  一个功能强大的文本编辑器
欢迎访问http://www.ipanx.net
快速回复
限100 字节
 
上一个 下一个