可能:程序执行Qt3和Qt4代码?

时间:2009-05-26 11:35:28

标签: c++ python windows qt boost

也许这是一个非常愚蠢的问题,但我希望你能给我一些答案。

我有一个商业应用程序,它使用Qt3作为其GUI,并使用嵌入式Python解释器(命令行)进行脚本编写。我想为这个使用Qt4的应用程序编写一个自定义插件。该插件主要是一个子类化的QMainWindow类,它与一个boost python包装器一起链接到一个dll(所以我在Windows上)。 python包装器应该是我的插件和我的商业应用程序之间的接口。

所以我的问题:这可能吗?因此,运行Qt3代码独立于在同一应用程序中运行Qt4代码。

首次实验导致应用程序关闭,我将尝试进一步调查...

谢谢!

编辑: 我的应用程序崩溃了,因为我没有创建QT4 qapplication实例。因此,当我创建实例时,一切都运行良好,没有额外的Qt命名空间(在答案中建议,所以不需要重新编译)! ;)

2 个答案:

答案 0 :(得分:3)

在Trolltech论坛上查看this thread。 (实际上,这是关于Qt4应用程序中的Qt3插件,但我怀疑答案大致相同)。

更新:现在链接一个哑弹,但wayback machine有它。

答案 1 :(得分:3)

这可能是通过命名空间Qt实现的。来自configure --help;

-qtnamespace <name>  Wraps all Qt library code in 'namespace <name> {...}'.

理论上,这可以防止符号冲突,这可能使您当前的方法失败。