2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > paip.提升用户体验------c++ Qt5 实现程序图标以及动态托盘闪烁图标

paip.提升用户体验------c++ Qt5 实现程序图标以及动态托盘闪烁图标

时间:2020-09-20 02:03:29

相关推荐

paip.提升用户体验------c++ Qt5 实现程序图标以及动态托盘闪烁图标

paip.提升用户体验------c++ Qt5 实现程序图标以及动态托盘闪烁图标

作者Attilax , EMAIL:1466519819@

来源:attilax的专栏

地址:/attilax

1.应用程序图标:

----------------------------

RC_ICONS = default.ico .默认路径是项目path..会编译到个exe黑头..

2.系统托盘图标:

-------------------------

#include <QtGui>

#include <QSystemTrayIcon>

下列的代码放的个构造函数黑头..

//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 <QtGui>

#include <QSystemTrayIcon>

#include <QTimer>

//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的专栏 - 博客频道 - .htm

Qt5:QSystemTrayIcon类实现程序托盘图标 - wowk - 博客园.htm

dist changes-2.2.0 in qt-creator qt-creator master - Qt by Digia.htm

Qt中timer使用 - 懒人的技术笔记 - 博客频道 - .htm

Qt 定时器Timer使用 - PY4NT的日志 - 网易博客.htm

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。