Qt系统托盘程序

原创 2013年12月06日 10:37:19

1:首先在程序的main函数中添加:

void main()

{

QApplication a(argc, argv); 


if ( !QSystemTrayIcon::isSystemTrayAvailable() ) 

              MessageBoxQt(“没有检测到系统托盘”);

return 1;

}


QApplication::setQuitOnLastWindowClosed(false);


            。。。

}


2:在指定窗口中(一般是主窗口),添加相应代码:



class trayWindow : public QMainWindow

{

public slots:

void slot_create_tray() //创建系统托盘;
{
createActions();  
createTrayIcon();
 
connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));


QIcon icon("G:\\t.png");
trayIcon->setIcon(icon);  //设置托盘图标;
 
trayIcon->show(); //显示托盘;
}




public:
QAction *minimizeAction;
QAction *maximizeAction;
QAction *restoreAction;
QAction *quitAction;


QSystemTrayIcon *trayIcon;
QMenu *trayIconMenu; 
 

void createActions()  //创建添加菜单QAction;
{
minimizeAction = new QAction(tr("Mi&nimize"), this);
connect(minimizeAction, SIGNAL(triggered()), this, SLOT(hide()));


maximizeAction = new QAction(tr("Ma&ximize"), this);
connect(maximizeAction, SIGNAL(triggered()), this, SLOT(showMaximized()));


restoreAction = new QAction(tr("&Restore"), this);
connect(restoreAction, SIGNAL(triggered()), this, SLOT(showNormal()));


quitAction = new QAction(tr("&Quit"), this);
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit())); 
}


void createTrayIcon() //创建托盘,添加菜单;
{
trayIconMenu = new QMenu(this);
  trayIconMenu->addAction(minimizeAction);
  trayIconMenu->addAction(maximizeAction);
  trayIconMenu->addAction(restoreAction);
   trayIconMenu->addSeparator();
trayIconMenu->addAction(quitAction);


trayIcon = new QSystemTrayIcon(this);
trayIcon->setContextMenu(trayIconMenu);
}


public slots:
void iconActivated(QSystemTrayIcon::ActivationReason reason) //托盘图标响应鼠标消息
{
switch (reason) 
{
case QSystemTrayIcon::Trigger:
case QSystemTrayIcon::DoubleClick:
break;
case QSystemTrayIcon::MiddleClick:
break;
default:
;
}
}


}


通过上述方法就可以制作一个简单的托盘应用程序; 

这里简单讲托盘程序的编写过程将清楚;

如果想查看更多托盘程序应用,可以参考Qt安装包中的例子: Qt\Qt5.1.1\5.1.1\msvc2010\examples\widgets\desktop\systray ;

版权声明:本文为博主原创文章,未经博主允许不得转载。 如果转载,需要获得作者授权。保留追究法律责任的权力。

相关文章推荐

Qt之系统托盘(QSystemTrayIcon详解)

托盘是什么?这个就不用在多说了!而Qt中如何实现自己的托盘功能,Qt自带的demo也很明了,这里我们就来实现自己的一个托盘。。。   void TrayMenu::createActions()  ...

Qt个性化系统托盘的实现

  • 2015年10月31日 14:06
  • 95KB
  • 下载

QT之系统托盘

QT之系统托盘QT之系统托盘 插叙 应用背景 应用效果图 上代码 自定义菜单效果图 下代码 结尾插叙 今天天气不错哈,在这么寒冷的天气,享受着这么温暖的阳光。很舒服!你懂的~~趁这个大好时光,我给...

Qt系统托盘

 Qt的系统托盘的使用,可比mfc中好多了!他封装了一个专门的QSystemTrayIcon类,建立系统托盘图标。其实在Qt提供的示例程序已经很不错了,$QTDIR/examples/desktop/...

Qt之任务栏系统托盘图标

托盘图标,一个自己脑子出现很久的词,可惜自己都没动手去实现。最近看见的,听见的多了,自己也感兴趣就弄弄了,感觉还蛮简单了。   贴出效果图:       那么多功能,其实就一个...

Qt/PyQt的系统托盘图标(SystemTrayIcon)实现

原文地址 write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 估计这种小的知识会有几篇文章,除了全局快捷键部分外,其他的都比...

Qt实现系统托盘

Qt实现系统托盘的功能

QT 系统托盘图标

QIcon icon = QIcon(":/images/icon.ico");加载图片 setWindowIcon(icon);把图片设置到窗口上 trayIcon = new QSyste...
  • wjeson
  • wjeson
  • 2012年06月16日 13:43
  • 575
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Qt系统托盘程序
举报原因:
原因补充:

(最多只允许输入30个字)