我编写了一些依赖于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。