我编写了一些依赖于 Qt4 库的代码,并在一些项目中使用它。它处理 PDF 的显示、打印等,并使用 poppler 库 我的新项目是使用 Qt5 制作的,我需要其中的这些功能。 我的 qt4 库由 DLL 表示,它仅返回 QWidget 派生类的对象。 是否可以在我的新 qt5 项目中使用这个 QWidget?也许经过一些包装? 另外,在探索这个问题时,我接触到了 Qt 插件。我还没有研究过这个领域,但是也许可以使用它们来解决问题?
提前致谢。
最佳答案
Qt 4 和 Qt 5 不兼容二进制,所以不,您不能直接使用该小部件。在同一个应用程序中同时使用 Qt 4 和 Qt 5 听起来是一个危险的想法......
最好的选择当然是将 libpoppler 移植到 Qt 5(您评估过这样的移植有多复杂吗?可能不会太多)。第二好的会使用 QX11Embed,但这些类目前在 Qt 5 中缺失,等待有人将它们移植到 QPA/XCB。
关于plugins - 在Qt5中使用Qt4小部件,无需重新编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17109499/