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更好)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)