结果:完整代码如下:
#include "widget.h"
#include "ui_widget.h"
#include <QMenu>
#include <QSound>
#include <QPalette>
#include <QBrush>
#include <QPixmap>
#include <QRect>
#include <QPainter>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
sys.setIcon(QIcon("C:\\Users\\23625\\Desktop\\MyGirl\\image\\LoveToolTip.png"));//一定要设置icon不然看不见
//设置托盘菜单
QMenu *mMenu = new QMenu(this);
mMenu->addAction(ui->actionClose);
mMenu->addSeparator();
mMenu->addAction(ui->actionOpen);
sys.setContextMenu(mMenu);
sys.show();
//设置消息框
connect(&sys,&QSystemTrayIcon::messageClicked,this,&Widget::showMessage);//点击消息框,显示主窗口
//设置按钮背景颜色
QPalette pal = this->palette();
pal.setColor(QPalette::Button,QColor(230,156,157));
ui->pushButton->setPalette(pal);
ui->pushButton->setAutoFillBackground(true);
ui->pushButton->setFlat(true);
ui->pushButton_2->setPalette(pal);
ui->pushButton_2->setAutoFillBackground(true);
ui->pushButton_2->setFlat(true);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_actionOpen_triggered()//显示事件
{
this->show();
}
void Widget::on_actionClose_triggered()//关闭事件
{
this->close();
}
void Widget::showMessage()//托盘消息显示
{ sys.showMessage("Information",//消息窗口标题
"告白气球!",//消息内容
QSystemTrayIcon::MessageIcon::Information,//消息窗口图标
5000);//消息窗口显示时长
}
//void Widget::closeEvent(QCloseEvent *event)//重写关闭事件
//{
event->ignore();
this->hide();
//}
void Widget::on_pushButton_clicked()//音乐播放
{
QSound *music=new QSound("C:\\Users\\23625\\Desktop\\untitled2\\Music\\Gaobai.wav",this);
music->play();
// if(loop)
music->setLoops(400);
ui->pushButton->setEnabled(false);
}
void Widget::on_pushButton_2_clicked()//隐藏到托盘
{
this->hide();
}
void Widget::paintEvent(QPaintEvent *event)//重写绘画事件,设置背景图片
{
pix.load("C:\\Users\\23625\\Desktop\\rose\\image\\mainW.jpg");
Q_UNUSED(event);
QRect rec = this->rect();
QPainter pain(this);
pain.drawPixmap(rec,pix);
}