c++ - Qt:如何使装饰丰富的弹出窗口代替默认的QSystemTrayIcon弹出窗口

标签 c++ qt trayicon

我有一个简单的通知应用程序,我正在使用带有 C++ 的 Qt 4.7.1 编写一个位于系统托盘中的应用程序。每次有消息传来;我需要它来弹出一个窗口。但是,我需要它变得丰富(即,我想为其添加颜色和图片)。但是,我所拥有的只是默认的弹出消息框。我怎样才能创建一个新的更丰富的总是弹出在托盘图标上方的图标?

最佳答案

所有 qt 小部件类都可以通过 stylesheets 设置样式。 ,根据创建弹出窗口的位置(设计器或代码)为它分配一个具有您想要的外观的样式表。您可以通过使用小部件的上下文菜单将样式分配给小部件来在设计器中测试样式表

经过进一步审查,QSystemTrayIcon::showMessage() 调用会发出一个系统 通知。我不知道它是否可以设计样式。 qt 发行版中的 qsystemtrayicon_win.cpp 文件显示了一种解决方法,并显示了如何在托盘中找到图标位置的方法(参见 QSystemTrayIconSys::findIconGeometry)。获得位置后,您可以在该位置弹出自己的窗口。我没有看得很深,我不知道你是否可以根据你在 Qt 公共(public)方面的信息找到图标的位置。你可能不得不用它去所有的窗口。

关于c++ - Qt:如何使装饰丰富的弹出窗口代替默认的QSystemTrayIcon弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5805081/

相关文章:

qt - QDir::tempPath() 与 QStandardPaths::writableLocation()

java - 当我在 Java 中左键单击 TrayIcon 时,如何让 PopupMenu 显示出来?

c++ - 在 C++ 中使用 % 运算符和/运算符的替代方法

c++ - 预期 { 在输入结束时

c++ - 双向链表上的快速排序

c++ - 不能使用 QPoint 作为 QHASH 键

c++ - QSortFilterProxyModel filterAcceptsColumn 无法设置新的索引数据

java - 托盘图标.displaymessage文本大小java

java - 托盘图标根本不显示在 java 中

c++ - 相同的未更改代码是否可能有时运行有时不运行?