在我的 Qt 应用程序中,我想使用Windows 用户体验指南中所示的气球/气球提示(不是系统托盘气球)。
Qt 支持吗?我什么也没找到。是否有一个开源库(Qxt 没有)?自己创建它的最佳方法是什么?
在我的 Qt 应用程序中,我想使用Windows 用户体验指南中所示的气球/气球提示(不是系统托盘气球)。
Qt 支持吗?我什么也没找到。是否有一个开源库(Qxt 没有)?自己创建它的最佳方法是什么?
搜索QBalloonTip
类(在 Qt 文档(doxygen 参考)和代码库中,查看它是如何实现的,并使用类似的技术。
您可以使用QBalloonTip
which 是定义在中的内部类:
Qt 5:
QtDir/Src/qtbase/src/widgets/util/qsystemtrayicon_p.h
Qt 4:
QtDir/src/gui/utils/util/qsystemtrayicon_p.h
QBalloonTip
继承QWidget
并qsystemtrayicon.cpp
在同一目录中实现。它具有以下显示气球提示的方法:
void QBalloonTip::balloon(const QPoint& pos, int msecs, bool showArrow)
您可以修改此类的源代码以获得所需的气球提示。
要在 Qt 5.12 中使用私有类QBaloonTip
,您需要执行以下操作:
1) 添加QT += widgets-private
到您的 PRO 文件中,以便能够包含私有标头
2)#include <QtWidgets/private/qsystemtrayicon_p.h>
在您的源文件中
然后调用静态方法showBallon()
或实例化它并调用baloon()
. 但它实际上只适用于系统托盘,它是一个私有 API,可以随时更改。我个人不会使用它。但是,如果您想知道它是如何呈现的,请查看https://code.woboq.org/qt5/qtbase/src/widgets/util/qsystemtrayicon.cpp.html#_ZN11QBalloonTip10paintEventEP11QPaintEvent