http://www.voidcn.com/article/p-goboshgv-zx.html
作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/attilax 1.应用程序图标: ---------------------------- RC_ICONS = default.ico .默认路径是项目path..会编译到个exe黑头.. 2.系统托盘图标: ------------------------- #include #include 下列的代码放的个构造函数黑头.. //c923 style tyay icon pannelIcon = new QSystemTrayIcon(this); pannelIcon->setIcon(QIcon("tray.ico")); pannelIcon->show(); pannelIcon-> setToolTip("tray tip c923"); //设置托盘图标的提示信息 不过.会发现显示不出来.主要十路径问题..tray.ico的路径. 跟踪查看进程工作路径working directory ------------------------------------------------------- processexporlere , ritkey>prroper> image >curr dir >> 视图当前working directory.. 发现到个build路径.. 要更改路径到个qtc2.8的.>>projects> build & run >>run settting >>run working derictory ....不过一般不需要更改这个. 加个run step,让qtc 运行的之前不个 *.ico复制到个build路径.走OK兰.. command: cmd.exe arguments: /c copy %{sourceDir}\*.ico %{buildDir} working dericetory: %{buildDir} (default) 路径要用反斜杠了..用斜杠错误. D:\qtworkspace\atiqtc9/tray.ico D:\qtworkspace\build-atiqtc9-deskc9-Debug // 命令语法不正确。 注意 copy D:\qtworkspace\atiqtc9\tray.ico D:\qtworkspace\build-atiqtc9-deskc9-Debug 查看cqt变量内容 ----------------------- 直接输入类k上面走出来兰.. 3.动态托盘闪烁图标: ---------------------------- 这个走要用timer实现兰..不过比较的时候发现. QSystemTrayIcon->icon(); // if( &QSystemTrayIcon_cur==&ico_a) 地址不一样,日怪兰..只好用个int变量来标示. 源码主要下列的: ------h文件加个slot 声明 private slots: //c923 flashicon timer void dosomethings(); c923 -----cpp #include #include #include //c923 style tyay icon QSystemTrayIcon* pannelIcon ; //c923 //timer flash icon QIcon ico_a; QIcon ico_b; int curIcon=0; ///c923 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); this->setAcceptDrops(true); //setAcceptDrops(true); // [[1]]: 使label可接受拖放操作 //c923 style tyay icon pannelIcon = new QSystemTrayIcon(this); pannelIcon->setIcon(QIcon("tray.ico")); pannelIcon->show(); pannelIcon-> setToolTip("tray tip c923"); //设置托盘图标的提示信息 //void show() //该函数适用于显示托盘图标的函数 //void showMessage(const QString & title, const QString & message,...) //timer flash icon ico_a =QIcon("tray.ico"); ico_b=QIcon("default.ico"); QTimer* timer=new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(dosomethings())); timer->start(400); c923 } //c923 //timer flash icon void MainWindow::dosomethings() { qDebug() << "---timer event start--"; //do something qDebug() << filename; QIcon qi=pannelIcon->icon(); // if( &qi==&ico_a) if(curIcon==0) { pannelIcon->setIcon(ico_b); curIcon=1; } else {curIcon=0; pannelIcon->setIcon(ico_a); } pannelIcon->show(); // emit outlogtext("abc"); } c923 参考: C++用new来创建对象和非new来创建对象的区别 - GOD_YCA - 博客园.htm 在Qt Creator2.3中 qmake 建立 时设置自己的 环境变量! - jtop0的专栏 - 博客频道 - CSDN.NET.htm Qt5:QSystemTrayIcon类实现程序托盘图标 - wowk - 博客园.htm dist changes-2.2.0 in qt-creator qt-creator master - Qt by Digia.htm Qt中timer使用 - 懒人的技术笔记 - 博客频道 - CSDN.NET.htm Qt 定时器Timer使用 - PY4NT的日志 - 网易博客.htm