c++ - 如何使用私有(private)Qt C++ API?

标签 c++ qt

我正在尝试使用 QBalloonTip 类为 QT 5.8.0 的按钮生成风格化的工具提示。

到目前为止我所尝试的是通过提供默认参数来修改头文件qsystemtrayicon_p.h方法QBalloonTip::showBalloon(...)。但是,即使我在代码中包含 header qsystemtrayicon_p.h ,在链接已编译的源代码时也会遇到问题。出现下一个错误:

LNK2019:无法解析的外部符号:“public static void QBalloonTip::showBalloon(...)”

希望有人曾经遇到过这个问题。预先感谢您。

最佳答案

要使用 Qt 的私有(private) API,您必须将其显式包含在您的 .pro 文件中:

QT += widgets-private

但是,不建议这样做,因为私有(private) API 没有记录,并将您与您构建的特定 Qt 版本联系起来。如果您的代码符合 GPL,您可能应该将气球提示类的源代码复制到您的应用程序中。

此外,这不会解决您的问题,因为您不能简单地将 header 修改为已编译的库。这根本不可能。尝试从该类继承,或者将源代码复制到您的项目中并在那里修改它们。

关于c++ - 如何使用私有(private)Qt C++ API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46137870/

相关文章:

c++ - C++/QT 中更大项目的结构

c++ - ZeroMQ 是否有数据到达时的通知/回调事件/消息?

c++ - 使用 Qt 和 OpenGL 重复渲染循环

c++ - QTimer::timeout 没有触发

c++ - 从 Qt 5.6 切换到 Qt 5.7 - 命名空间 std 中的 "no member ' make_unique'

qt - 如何正确实现同一数据集的不同 View 选项

c++ - 看看我们是否可以得到回文

c++ - 函数返回的结果比应有的值小 1

linux - Qt Creator 从 Windows 交叉编译 Raspberry Pi,发出远程运行应用程序的问题

c++ - OpenCV cv WriteFrame(..) 什么都不做