关闭

qt类似于qq托盘图标闪烁的消息提示

1975人阅读 评论(0) 收藏 举报
分类:

qt类似于qq托盘图标闪烁的消息提示  

  times=new QTimer (this);

    times->setSingleShot(false);//true 表示循环一次 表示循环无数次

    times->setInterval(650);

    connect(times,SIGNAL(timeout()),this,SLOT(changeico()));

void MainWindow::timeico()

{

    m=0;

    times->start();

}

void MainWindow::changeico()//这里我们让其闪烁二十次

{

    m++;

    if(m==20)

    {

        times->stop();

    }

        if(m%2==0)

        {

             iTrayIcon->setIcon( QIcon(":/images/monter.png") );

        }

        else

        {

             iTrayIcon->setIcon( QIcon() );

        }

}

void MainWindow::Maction(QSystemTrayIcon::ActivationReason wch)

{

    switch(wch)

    {

            case QSystemTrayIcon::Trigger: times->stop();

                     iTrayIcon->setIcon( QIcon(":/images/monter.png") );break;//当用户单击时 我们让图标停止闪烁

         default:;

    }

}


QIcon icon = QIcon(":/images/icon.ico");加载图片

setWindowIcon(icon);把图片设置到窗口上

trayIcon = new QSystemTrayIcon(this);创建一个系统托盘图标

trayIcon->setIcon(icon);//设置图标

trayIcon->setToolTip("a trayicon example");//设置提示语

trayIcon->show();

setMinimumSize(200,100);窗口最大化和最小化一样大小。所以窗口不能放大也不能缩小

setMaximumSize(200,100);

QApplication::setQuitOnLastWindowClosed(false);//Quit On Last Window Closed退出在最后窗口关闭点击关闭时程序不关闭

在 系统托盘图标中,当图标activated(激活)时应该做好相应的处理,它会触发QSystemTrayIcon::ActivationReason 信号,信号可能是单击(触发(Trigger))、双击(DoubleClick)时应该用switch来接收处理,例如:

void class(QSystemTrayIcon::ActivationReason reason){

  switch (reason) {

  case QSystemTrayIcon::Trigger:

    添加自己处理

  break;  

  case QSystemTrayIcon::DoubleClick:

    添加自己处理

    break;  

  case QSystemTrayIcon::MiddleClick:

   添加自己处理

    break; 

  default:        

  }

}

设置系统托盘图标是常用到以下以个:

QIcon(":/images/icon.ico")//加载ico图片或是

QIcon(":/images/heart.svg")//加载svg图片

QSystemTrayIcon->setIcon(QIcon icon);//定义一个系统托盘图标并设置图标

setWindowIcon(icon);//设置窗口图标

QSystemTrayIcon->setToolTip(string);//定义一个系统托盘图标并设置图标的提示语

有时还需要在图标上设置菜单。如下:

void Window::createActions()

{

minimizeAction = new QAction(tr("最小化"), this);

connect(minimizeAction, SIGNAL(triggered()), this, SLOT(hide()));//若是触发了最小化就隐藏窗口

maximizeAction = new QAction(tr("最大化"), this);

connect(maximizeAction, SIGNAL(triggered()), this, SLOT(showMaximized()));//若触发了最大化就最大化窗口

restoreAction = new QAction(tr("还原"), this);

connect(restoreAction, SIGNAL(triggered()), this, SLOT(showNormal()));//若触发了还原就正常显示

quitAction = new QAction(tr("退出"), this);

connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));//若触发了退出就退出程序

}

void Window::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);//设置托盘上下文菜单为trayIconMenu

}

当你不想把你的图标显示出来而程序正常运行,那么就要设置是否可见(setEnabled):

如下:

qidget::setEnabled(bool)

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

QSystemTrayIcon增加系统托盘图标Demo

先看一下效果: 代码如下: #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include ...
  • u014597198
  • u014597198
  • 2017-03-15 16:08
  • 655

Qt for android手机屏幕当鼠标用

由于无线鼠标忘记带回家了,想躺在床上看电视(电视机屏幕当显示器)怎么办呢?HOHO,我们的手机屏幕本来就是个触摸板,嘿嘿,那就用手机屏幕当鼠标好了。
  • qq_16952303
  • qq_16952303
  • 2017-02-09 14:42
  • 349

qt类似于qq托盘图标闪烁的消息提示

times=new QTimer (this);     times->setSingleShot(false);//true 表示循环一次 表示循环无数次     times->setI...
  • yangluoning
  • yangluoning
  • 2013-12-25 14:30
  • 3483

Qt5 实现程序图标以及动态托盘闪烁图标

http://blog.csdn.net/attilax/article/details/11927673 作者Attilax ,  EMAIL:1466519819@qq.com ...
  • oMingZi12345678
  • oMingZi12345678
  • 2013-12-08 18:16
  • 2420

使任务栏上的程序图标闪烁

  • 2013-10-29 15:35
  • 2.09MB
  • 下载

Qt QWidget播放视频背景图片闪烁

QWidget上渲染视频数据时,界面刷新导致重绘背景图片使得出现闪屏现象
  • u013617648
  • u013617648
  • 2017-04-13 17:45
  • 1969

qt类似于qq托盘图标闪烁的消息提示

times=new QTimer (this);     times->setSingleShot(false);//true 表示循环一次 表示循环无数次     times->setI...
  • yangluoning
  • yangluoning
  • 2013-12-25 14:30
  • 3483

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

paip.提升用户体验------c++ Qt5 实现程序图标以及动态托盘闪烁图标 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 ...
  • attilax
  • attilax
  • 2013-09-23 13:34
  • 4016

Qt浅谈之三十系统托盘(QSystemTrayIcon)

一、简介        Qt自带的例子/usr/lib64/qt4/examples/desktop/systray中详尽介绍了系统托盘的功能,在其基础上进行拓展,定制适合自己的系统托盘。     ...
  • taiyang1987912
  • taiyang1987912
  • 2015-07-20 12:15
  • 3787

win32 托盘图标的显示以及闪烁功能

win32托盘图标的闪烁与显示
  • suixiangzhe
  • suixiangzhe
  • 2015-12-03 11:56
  • 1977
    个人介绍
    个人资料
    • 访问:2310277次
    • 积分:26889
    • 等级:
    • 排名:第244名
    • 原创:81篇
    • 转载:1891篇
    • 译文:1篇
    • 评论:134条
    最新评论