plugins - 在Qt5中使用Qt4小部件,无需重新编译

标签 plugins qt4 wrapper backwards-compatibility qt5

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

相关文章:

javascript - 未捕获的类型错误 : Object [object Object] has no method 'slides'

c# - 动态 crm 中的 AppDomain.CurrentDomain.AssemblyResolve

c++ - 如何确定 qtable 单元格中的小部件类型?

html - 如何为 Div 元素制作一个 Create Box-Shadow 包装器?

c++ - 是否可以使用 NULL 检查制作通用 C++ 函数指针包装器?

javascript - jquery-ias 插件不适用于我的网站,加载更多项目不起作用

ios - 如何在 cordova iOS 应用程序中实现推送通知

c++ - 创建自定义 QT 库

c++ - 在 Qt 中动态创建 QSlider 与关联的 QLCDNumber

c# - C++ 到 C# 包装器空异常错误