当前位置: 首页 > wzjs >正文

怎样做模板网站在线做动漫图的网站

怎样做模板网站,在线做动漫图的网站,免费的资料网站,孝感哪家做网站的公司好文章目录 托盘的功能QSystemTrayIcon 类QSystemTrayIcon类的常用函数代码实现 托盘的功能 GUI 程序,如果想要实现当最小化时,程序从任务栏消失,在系统托盘显示一个图标,表示此程序,并能在托盘内通过双击或者菜单使程序…

文章目录

    • 托盘的功能
    • QSystemTrayIcon 类
    • QSystemTrayIcon类的常用函数
    • 代码实现


托盘的功能

GUI 程序,如果想要实现当最小化时,程序从任务栏消失,在系统托盘显示一个图标,表示此程序,并能在托盘内通过双击或者菜单使程序界面恢复。
在这里插入图片描述


QSystemTrayIcon 类

托盘功能实现主要使用的类:QSystemTrayIcon
QSystemTrayIcon 是主要操作系统托盘的操作类,通过此类,可以在托盘显示指定程序的图标,响应用户鼠标的单击、双击、显示指定消息、显示菜单等。此类中有两个枚举类型,分别如下:

在这里插入图片描述


QSystemTrayIcon类的常用函数

1、void setIcon(const QIcon& icon);

主要用来设置托盘中的图标,通常与QIcon结合使用:

QIcon icon = QIcon(":/images/app.png");m_systemtray->setIcon(icon);

在这里插入图片描述

2、void setToolTip(const QString &tip);

设置鼠标悬停时的提示语;

m_systemtray->setToolTip("Test!!!!!");

在这里插入图片描述

3、void showContextMenu(QMenu *menu);

获取鼠标点击事件,当点击图标弹出的菜单;

m_systemtray->setContextMenu(m_menu);

在这里插入图片描述

4、void show();

功能:在系统托盘中显示图标;

 m_systemtray->show();

5、void showMessage();

系统提示消息;

void Widget::showMessage()
{
/*
void showMessage(const QString &title, const QString &msg,QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int msecs = 10000);
*/m_systemtray->showMessage("Information",//消息窗口标题"There is an message!",//消息内容QSystemTrayIcon::MessageIcon::Information,//消息窗口图标5000);//消息窗口显示时长
}

代码实现

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QMenu>
#include <QAction>
#include <QSystemTrayIcon>QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots://显示主界面void showWindow();//鼠标点击显示系统提示消息void showMessage();//显示托盘菜单void showMenu();//退出应用void quit();//获取当前鼠标点击事件void activeTray(QSystemTrayIcon::ActivationReason reason);//点击按钮隐藏窗口到系统托盘void on_pushButton_clicked();private:Ui::Widget *ui;//创建一个托盘QSystemTrayIcon *m_systemtray;//创建一个托盘菜单QMenu *m_menu;//定义菜单事件QAction *m_action1;QAction *m_action2;QAction *m_action3;};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);this->setWindowFlags(Qt::FramelessWindowHint);//定义一个托盘m_systemtray = new QSystemTrayIcon(this);//定义一个菜单m_menu = new QMenu(this);//定义菜单事件m_action1 = new QAction(m_menu);m_action2 = new QAction(m_menu);m_action3 = new QAction(m_menu);//给菜单事件命名m_action1->setText("Show Window");m_action2->setText("Show Message");m_action3->setText("quit");//将菜单事件添加到菜单中m_menu->addAction(m_action1);m_menu->addAction(m_action2);m_menu->addAction(m_action3);//关联触发事件connect(m_action1 , &QAction::triggered , this , &Widget::showWindow);connect(m_action2 , &QAction::triggered , this , &Widget::showMessage);connect(m_action3 , &QAction::triggered , this , &Widget::quit);//将菜单添加到托盘对象中m_systemtray->setContextMenu(m_menu);//点击托盘触发connect(m_systemtray , &QSystemTrayIcon::activated , this , &Widget::activeTray);connect(m_systemtray , &QSystemTrayIcon::messageClicked , this , &Widget::showWindow);
}Widget::~Widget()
{delete ui;
}void Widget::showWindow()
{this->show();
}void Widget::showMessage()
{m_systemtray->showMessage("Information",//消息窗口标题"There is an message!",//消息内容QSystemTrayIcon::MessageIcon::Information,//消息窗口图标5000);//消息窗口显示时长
}void Widget::showMenu()
{m_menu->show();
}void Widget::quit()
{this->close();
}void Widget::activeTray(QSystemTrayIcon::ActivationReason reason)
{switch(reason){case QSystemTrayIcon::Context:showMenu();break;case QSystemTrayIcon::DoubleClick:showWindow();break;case QSystemTrayIcon::Trigger:showMessage();break;}
}void Widget::on_pushButton_clicked()
{this->hide();QIcon icon = QIcon(":/images/app.png");m_systemtray->setIcon(icon);m_systemtray->setToolTip("Test!!!!!");m_systemtray->show();}

主要逻辑
1、点击图标QSystemTrayIcon::ActivationReason,触发鼠标点击connect事件,单击右键showMenu();、双击左键showWindow();、单击左键showMessage();
2、定义托盘对象,添加菜单,单击右键showMenu();,点击m_action触发connect事件, connect(m_action1,&QAction::triggered,this,&Widget::showWindow);
3、在主窗口设置一个按钮on_pushButton_clicked,点击按钮后触发托盘事件,将当前窗口hide();,在系统托盘中显示m_systemtray->show();


http://www.dtcms.com/wzjs/802299.html

相关文章:

  • 网站用户体验设计网站建设收费标准方案
  • 拱墅区建设局网站深圳福田专业网站推广
  • wordpress怎么上传自己的网站吗课程设计代做网站
  • 成都新津县建设网站做网站难吗
  • 聊城网站策划查排名网站
  • 网站设计的工作要求音乐网站的制作
  • 商务网站怎么做县区网站集约化建设
  • 合肥工程建设网站wordpress next page
  • 哪些彩票网站可做代理赚钱做企业网站需要什么文件
  • 网站设计流程大致分为几个阶段高品质的网站开发
  • 网站开发职业前景评估百度搭建wordpress
  • 广西建设安全员证查询网站公司做网站花销会计分录
  • 网站开发人员定罪c 网站建设步骤
  • 外贸网站运营怎么做WordPress经济主题
  • 网站备案是在哪里的学校网站建设管理
  • 做外国网站怎么买空间培训课程总结
  • 微企申请网站百度手机app下载安装
  • 网站建设 python音乐分享网站源码
  • 网站建设学的是什么知识Wordpress背景图覆盖
  • seo sem论坛网站内部优化工具
  • flash网站cms电商网站建设开发的语言有哪些
  • 境外网站服务器东莞朝阳企讯网做的网站
  • 禅城网站设计四川省建设厅
  • 移动端手机网站制作网站中如何做图片轮播
  • 怎么做网站推广林芝地区手机凡客网
  • 做网站的电脑吉林省建设工程造价信息网站
  • 中国最早做网站是谁网站下载到本地
  • 自己如何做网站建设黄页信息是什么意思
  • 怎么向网站添加型号查询功能锦州网站推广
  • 公司做一个网站内容如何设计方案怎么建网站做推广