您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中使用自定义Qt子类

在Python中使用自定义Qt子类

PyQt通过SIP将C 代码公开给Python ;PySide通过 Shiboken这样 。两者都具有与SWIG大致相同的 功能(除了它们仅 支持“将C 扩展到Python”,而SWIG也具有Ruby,Perl,Java等的后端)。SWIG,SIP和Shiboken都不设计为可以互操作。您无法方便地使用SWIG使用Qt所需的C ++扩展(以支持信号和插槽)来包装任何代码,并且我不知道尝试互操作SIP封装(或Shiboken封装)和SWIG可能遇到的危险包装的代码

我想问一问,为什么您选择使用两种单独且等效的方法来包装C ++代码库的不同部分(通过SIP或Shiboken进行Qt,通过SWIG进行其他操作)?如果您仍然可以重新考虑这个怪异的设计决定,我会建议您这样做。

如果您选择的SWIG是一成不变的,那么在您使用Qt扩展程序(即插槽或信号)包装C ++代码时,我预计会遇到很大的麻烦,并且对于所有相关人员而言,这通常是非常痛苦的时间。如果您选择 包装方式并坚持使用,则应大大减少问题。我没有Shiboken的实际经验(这有点太新了,现在我几乎再也没有使用GUI应用了……我的世界都是Web应用!!),但是过去曾在此角色中使用过SIP(早在它得到正式记录之前- 这些天在我看来,它 很棒 有记录,并且Shiboken的细读都给了我相同的印象),我可以高度推荐它(实际上,即使我没有选择Qt代码,如果我可以选择它,也可能比SWIG更好)。

python 2022/1/1 18:28:55 有177人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶