#include "widget.h"
#include<QPixmap>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{ i=0;
ii=0;
flag=0;
sysIcon=new QSystemTrayIcon(this);
sysIcon->setIcon(QIcon(":/QQ.jpg"));
sysIcon->show();
connect(sysIcon,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,SLOT(handle(QSystemTrayIcon::ActivationReason)));
QTimer*timer1=new QTimer(this);
timer1->start(500);
connect(timer1,SIGNAL(timeout()),this,SLOT(flash()));
timer2=new QTimer(this);
connect(timer2,SIGNAL(timeout()),this,SLOT(ShowPicture()));
}
Widget::~Widget()
{
}
// QQ图标闪动实现
void Widget::flash()
{
switch(flag)
{
case 0:
{
sysIcon->setIcon(QIcon(":/QQ.jpg")); //加载QQ图标
flag =1;
break;
}
case 1:{
sysIcon->setIcon(QIcon(":/123.jpg"));// 123.jpg不存在 相当于加载系统背景
flag=0;
break;
}
}
}
//处理系统托盘图标点击事件
void Widget::handle(QSystemTrayIcon::ActivationReason reason)
{
switch(reason)
{
case QSystemTrayIcon::Trigger: //若触发图标单击事件,启动定时器timer2,设定100ms启动一次
timer2->start(100);
}
}
// 显示图片,当图片满屏,立即清除窗口,重绘图片
void Widget::ShowPicture()
{
label=new QLabel; //装载图片的标签
label->setWindowFlags(Qt::FramelessWindowHint|Qt::SubWindow);//剔除label边框
label->setAttribute(Qt::WA_DeleteOnClose);
list.append(label);//将标签依此加入QList容器
QPixmap pix(":/QQ.jpg");//显示图片控件
label->setPixmap(pix);//将此控件添加到label中显示
label->resize(pix.rect().width(),pix.rect().height());//获取pix的宽和高作为label的宽和高
label->setGeometry(0+i*label->width(),0+ii*label->height(),label->width(),label->height());
i++;
if(i*label->width()>QApplication::desktop()->screenGeometry().width()) //获取桌面宽度和高度
{
if((ii+1)*label->height()>QApplication::desktop()->screenGeometry().height())
{
for(int count=0;count<list.size()-1;count++)
{
list[count]->close();
}
list.clear();
list.append(label);
ii=-1;
}
i=0;
ii++;
}
label->show();
}
SystemTrayItem.rar_QQ空间_Qt 绘图_qt在线
版权申诉
53 浏览量
2022-09-19
19:30:01
上传
评论
收藏 11KB RAR 举报
小波思基
- 粉丝: 70
- 资源: 1万+