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

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

我有一个商业应用程序,它使用Qt3的GUI和一个embedded式的Python解释器(命令行)来编写脚本。 我想为使用Qt4的这个应用程序编写一个定制的插件。 该插件主要是一个子类QMainWindow类,连接到一个DLL(所以我在Windows上)与一个boost python包装。 python包装应该是我的插件和我的商业应用程序之间的接口。

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

第一个实验导致应用程序closures,我将尝试进一步调查…

谢谢!

编辑:我的应用程序崩溃,因为我没有创build一个QT4 qapplication实例。 所以当我创build实例时,没有额外的Qt命名空间(这是在答案中build议的,所以不需要重新编译),一切正常。 ;)

在Trolltech论坛上查看此主题 。 (其实这是关于Qt4应用程序中的Qt3插件,但我怀疑答案是一样的)。

更新:现在链接了一个笨蛋,但是后卫机器有它。

这可能是通过命名空间Qt。 从configure --help ;

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

从理论上讲,这应该可以防止可能导致当前方法失败的符号冲突。