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

ip网站怎么做徐州做网站需要多少钱

ip网站怎么做,徐州做网站需要多少钱,WordPress禁用评论回收站,南宁平面设计公司文章目录 深入理解 Qt 系统托盘图标:创建自定义的系统托盘图标类1. 什么是 QSystemTrayIcon?2. 自定义系统托盘图标类:SysTraylcon3. 代码解析1. **类的定义**2. **构造函数:SysTraylcon::SysTraylcon(QWidget *parent)**3. **ini…

文章目录

  • 深入理解 Qt 系统托盘图标:创建自定义的系统托盘图标类
    • 1. 什么是 `QSystemTrayIcon`?
      • 2. 自定义系统托盘图标类:`SysTraylcon`
      • 3. 代码解析
        • 1. **类的定义**
        • 2. **构造函数:`SysTraylcon::SysTraylcon(QWidget *parent)`**
        • 3. **`init()` 方法**
        • 4. **弹出右键菜单:`popupMenu()`**
        • 5. **处理图标点击事件:`onIconActivated()`**
      • 4. 总结

深入理解 Qt 系统托盘图标:创建自定义的系统托盘图标类

在现代桌面应用程序中,系统托盘图标(通常位于任务栏右下角)是一个常见的交互方式。它为用户提供了快捷的操作界面,如显示应用程序、退出程序、查看通知等。在 Qt 中,QSystemTrayIcon 类允许我们轻松地在系统托盘中添加图标并与用户交互。今天,我们将介绍如何创建一个自定义的系统托盘图标类,使其能够响应用户的点击事件,并显示一个右键菜单。

1. 什么是 QSystemTrayIcon

在 Qt 中,QSystemTrayIcon 是一个用于在系统托盘(操作系统的任务栏右下角)显示图标的类。通过它,应用程序可以在系统托盘中创建图标,用户可以通过点击这个图标来执行一些操作。

QSystemTrayIcon 的主要功能

  • 显示图标:在任务栏右下角显示应用程序的图标。
  • 处理用户交互:通过用户点击图标来执行不同的操作,如显示主窗口、退出应用等。
  • 右键菜单:右键点击图标时弹出一个上下文菜单,提供更多的操作选项。

2. 自定义系统托盘图标类:SysTraylcon

我们创建了一个名为 SysTraylcon 的类,继承自 QSystemTrayIcon,并实现了一些附加功能,如响应用户的点击事件、弹出右键菜单等。

3. 代码解析

1. 类的定义

首先,我们定义了一个继承自 QSystemTrayIconSysTraylcon 类,这个类主要负责管理系统托盘图标及其交互。

class SysTraylcon : public QSystemTrayIcon
{Q_OBJECTpublic:SysTraylcon(QWidget *parent);~SysTraylcon();private:void init(); // 初始化托盘图标和菜单void popupMenu(); // 弹出右键菜单private slots:void onIconActivated(QSystemTrayIcon::ActivationReason reason); // 处理用户点击图标事件private:QWidget* parent; // 主窗口指针,用于显示主窗口和与主窗口交互
};
  • 继承 QSystemTrayIcon:通过继承 QSystemTrayIcon,我们可以创建一个托盘图标并响应用户的点击操作。
  • parent 成员parent 是指向主窗口的指针,这样我们就可以通过托盘图标与主窗口进行交互,例如显示主窗口或者退出程序。
2. 构造函数:SysTraylcon::SysTraylcon(QWidget *parent)
SysTraylcon::SysTraylcon(QWidget *parent): QSystemTrayIcon(parent), parent(parent)
{init(); // 初始化托盘图标和菜单
}
  • QSystemTrayIcon(parent):我们在构造函数中调用 QSystemTrayIcon 的构造函数,并将 parent(主窗口指针)传递给它。这是因为 QSystemTrayIcon 是一个控件类,通常会与其他控件(如主窗口)一起使用。

  • parent(parent):在构造函数的初始化列表中,我们将传入的 parent 参数赋值给 SysTraylcon 类的成员变量 parent。这样,SysTraylcon 就能持有对主窗口的引用,在需要时进行操作。

  • init():调用 init() 方法来初始化系统托盘图标的属性和行为。

3. init() 方法
void SysTraylcon::init()
{setToolTip("QtQQ"); // 设置系统托盘图标的提示信息setIcon(QIcon(":/Resources/MainWindow/app/logo.ico")); // 设置系统托盘图标connect(this, &QSystemTrayIcon::activated, this, &SysTraylcon::onIconActivated);
}
  • setToolTip("QtQQ"):设置托盘图标的提示信息,当用户将鼠标悬停在托盘图标上时,会显示这段文字。这里设置为 "QtQQ",即鼠标悬停时会显示 “QtQQ”。

  • setIcon(QIcon(":/Resources/MainWindow/app/logo.ico")):设置托盘图标的图标,这里使用的是项目资源中的 logo.ico 图标文件。系统托盘会显示这个图标。

  • connect(this, &QSystemTrayIcon::activated, this, &SysTraylcon::onIconActivated):通过 connect() 函数将 QSystemTrayIconactivated 信号连接到 SysTraylcon 类中的 onIconActivated() 槽函数。activated 信号会在用户点击托盘图标时触发,onIconActivated() 函数会根据用户的点击方式(如左键、右键、双击等)执行相应的操作。

4. 弹出右键菜单:popupMenu()
void SysTraylcon::popupMenu()
{CustomMenu* menu = new CustomMenu(parent);menu->addMenuAction("show", ":/Resources/MainWindow/app/logo.ico", QString::fromLocal8Bit("显示"));menu->addMenuAction("quit", ":/Resources/MainWindow/app/page_close_btn_hover.png", QString::fromLocal8Bit("退出"));connect(menu->getMenuActoic("show"), SIGNAL(triggered()), parent, SLOT(onShow()));connect(menu->getMenuActoic("quit"), SIGNAL(triggered()), parent, SLOT(onQuit()));menu->exec(QCursor::pos());menu->deleteLater();
}
  • CustomMenu* menu = new CustomMenu(parent):创建一个 CustomMenu 对象,CustomMenu 是我们自定义的菜单类,继承自 QMenu,它可以提供更多自定义功能。parent 是主窗口指针,用来管理菜单。

  • menu->addMenuAction():向菜单中添加两个菜单项,分别是 "show""quit"addMenuAction() 接受菜单项的名称、图标和文本。图标是资源中的图片,文本是菜单项的显示内容。

  • connect():我们将菜单项的 triggered() 信号与主窗口的槽函数连接:

    • "show" 菜单项连接到主窗口的 onShow() 槽函数,用来显示主窗口。
    • "quit" 菜单项连接到主窗口的 onQuit() 槽函数,用来退出程序。
  • menu->exec(QCursor::pos()):在当前鼠标位置弹出菜单。QCursor::pos() 返回当前鼠标的屏幕坐标,我们将菜单显示在鼠标位置。

  • menu->deleteLater():菜单显示完毕后,调用 deleteLater() 删除菜单对象,释放内存。

5. 处理图标点击事件:onIconActivated()
void SysTraylcon::onIconActivated(QSystemTrayIcon::ActivationReason reason)
{if (reason == QSystemTrayIcon::Trigger) {parent->show();parent->activateWindow();}else if (reason == QSystemTrayIcon::Context) {popupMenu();}
}
  • QSystemTrayIcon::Trigger:如果用户左键点击托盘图标,reasonQSystemTrayIcon::Trigger,此时我们调用 parent->show() 来显示主窗口,并使用 parent->activateWindow() 激活主窗口,使其成为前景窗口。

  • QSystemTrayIcon::Context:如果用户右键点击托盘图标,reasonQSystemTrayIcon::Context,此时调用 popupMenu() 方法弹出右键菜单。

4. 总结

在这篇博客中,我们创建了一个名为 SysTraylcon 的自定义系统托盘图标类,它继承自 QSystemTrayIcon,并添加了以下功能:

  • 设置托盘图标:显示一个图标,并设置鼠标悬停时的提示信息。
  • 响应左键点击:当用户左键点击托盘图标时,显示并激活主窗口。
  • 响应右键点击:当用户右键点击托盘图标时,弹出自定义的右键菜单,提供 “显示” 和 “退出” 功能。
  • 动态创建菜单项:使用 CustomMenu 类为菜单添加菜单项,并通过信号与槽机制连接菜单项的动作。

通过这些功能,我们能够创建一个具有系统托盘图标的应用程序,并使用户能够通过托盘图标快速访问应用程序的功能。


文章转载自:

http://JQ3WdfhS.LjxxL.cn
http://w7YlDDLt.LjxxL.cn
http://RymvYI4B.LjxxL.cn
http://9N6FhMWF.LjxxL.cn
http://qSK8SXUn.LjxxL.cn
http://QA0hDp8E.LjxxL.cn
http://VjmKgNJl.LjxxL.cn
http://2lvB1BnA.LjxxL.cn
http://YpzOQGeC.LjxxL.cn
http://PdW3I6QT.LjxxL.cn
http://K2vvWD5v.LjxxL.cn
http://bPeOsOBc.LjxxL.cn
http://U2kvD33M.LjxxL.cn
http://PX8b3pD5.LjxxL.cn
http://WrSeSkbi.LjxxL.cn
http://jPZ1G4ip.LjxxL.cn
http://EuDEVcup.LjxxL.cn
http://nkSf1o6b.LjxxL.cn
http://0aDrhlZG.LjxxL.cn
http://KrG5u6YZ.LjxxL.cn
http://Xvuh2wqB.LjxxL.cn
http://6wc7kGj4.LjxxL.cn
http://tsTEMJAY.LjxxL.cn
http://Avw9nDnR.LjxxL.cn
http://0kZA6g8w.LjxxL.cn
http://6T445Uvp.LjxxL.cn
http://sRsX1qme.LjxxL.cn
http://4sRj1cig.LjxxL.cn
http://jsxDRj4Q.LjxxL.cn
http://Fsb5e5XP.LjxxL.cn
http://www.dtcms.com/wzjs/755221.html

相关文章:

  • 长治网站建设公司怎样在建立公司网站
  • wap网站开发教程网站建设说明书
  • wordpress标题关键词aso优化排名推广
  • 焦作整站优化设计方案评审
  • 建设招聘网站网站设计公司 上海
  • 用织梦做的网站好不好404黄台软件平台
  • 汉中专业做网站WordPress支付宝登录
  • 南通做网站推广的公司网站建立于网页设计
  • 济南高端定制网站建设沈阳网站建设的价格
  • 柳州做网站的公司外贸单页网站案例
  • 江西网站建设与推广无锡住房和城乡建设局网站
  • 机械公司网站建设三合一网站建设口碑好
  • 公司网站设计案例手机端网站建设教程视频教程
  • 网站建设彩铃语wordpress htpasswd
  • 深圳公司做网站网站与app的本质区别
  • 泰安商城网站开发设计网站解析记录值
  • 黄浦网站推广公司中小型网站建设与管理 唐军民
  • 低多边形网站梅州市城乡建设局网站
  • ps6做网站点哪里保存有没有可以看的网址
  • 长春网站建设找新生科技一键做单页网站
  • pc端网站开发总结关于珠海网站建设的优势
  • 科技网站哪个好制作一个工厂小程序收费
  • 站酷网下载网站优化快速排名软件
  • 智慧团建pc版官网优化大师专业版
  • sae 企业网站通州做网站
  • 组建一个网站网站整合营销
  • 网站图片尺寸大小wordpress主题 插件
  • 中邮通建设咨询有限公司官方网站长沙电商优化
  • 长沙 网站建设凡科网站建设平台好么
  • 网站推荐男生正能量2021seo排名软件价格