也许这是一个非常愚蠢的问题,但我希望你能给我一些答案。
我有一个商业应用程序,它使用Qt3作为其GUI,并使用嵌入式Python解释器(命令行)进行脚本编写。我想为这个使用Qt4的应用程序编写一个自定义插件。该插件主要是一个子类化的QMainWindow类,它与一个boost python包装器一起链接到一个dll(所以我在Windows上)。 python包装器应该是我的插件和我的商业应用程序之间的接口。
所以我的问题:这可能吗?因此,运行Qt3代码独立于在同一应用程序中运行Qt4代码。
首次实验导致应用程序关闭,我将尝试进一步调查...
谢谢!
编辑: 我的应用程序崩溃了,因为我没有创建QT4 qapplication实例。因此,当我创建实例时,一切都运行良好,没有额外的Qt命名空间(在答案中建议,所以不需要重新编译)! ;)
答案 0 :(得分:3)
在Trolltech论坛上查看this thread。 (实际上,这是关于Qt4应用程序中的Qt3插件,但我怀疑答案大致相同)。
更新:现在链接一个哑弹,但wayback machine有它。
答案 1 :(得分:3)
这可能是通过命名空间Qt实现的。来自configure --help
;
-qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
理论上,这可以防止符号冲突,这可能使您当前的方法失败。