如何将用C++编写的Qt4小部件实现到一些Python代码中

How to implement Qt4 widgets written in C++ into some Python code?

本文关键字:实现 代码 Python 小部 Qt4 C++      更新时间:2023-10-16

在我尝试使用 PyQt4 创建 GUI(文档查看器)时,未能重现现有程序的质量,有人建议我应该使用这些现有程序的 Qt4 小部件(准确地说是 Okular),而不是重新发明轮子。

很公平,但那些Qt4小部件是用C++编写的:我应该如何从Python方面调用它们?它是否需要我学习C(在这种情况下,我宁愿花更多的时间来找出一个完整的Pythonic解决方案)?

Qt不是

用C写的,而是用C++写的,Okular也是如此。

不幸的是,让C++库使用 python 并不像通过 ctypes 使用 C 库那么容易。为此,您需要围绕C++ API 编写一些包装器代码以使其正常工作。
一些方法可以做到这一点:

  • sip - 由 PyQt 使用
  • shiboken - 由 PySide 使用
  • cython也可以用来包装C++,不知道它是否与Qt配合得很好