如何使用私有Qt C ++ API?

时间:2017-09-10 06:24:26

标签: c++ qt

我正在尝试使用QBalloonTip类为QT 5.8.0的按钮生成一个stilized工具提示。

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

LNK2019: unresolved external symbol: "public static void QBalloonTip::showBalloon(...)"

希望任何人以前都面对过这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:1)

要使用Qt的私有API,您必须明确将其包含在.pro文件中:

QT += widgets-private

但是,建议不要这样做,因为私有API没有记录,并且会将您绑定到您构建的特定Qt版本。如果您的代码符合GPL标准,您应该将balloontip类的来源复制到您的应用程序中。

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