c – 在Python中使用自定义Qt子类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c – 在Python中使用自定义Qt子类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1672字,纯文字阅读大概需要3分钟。
内容图文
![c – 在Python中使用自定义Qt子类](/upload/InfoBanner/zyjiaocheng/742/03c8097987484c7d8e26f043e200b35e.jpg)
首先:我是Qt和SWIG的新手.目前阅读这两个文档,但这是一个耗时的任务,所以我正在寻找一些破坏者.最好先了解一些事情是否会起作用.
我正在尝试为一些内部软件制定模块化架构.核心组件在C中,通过SWIG暴露给Python,用于实验和新组件的快速原型设计. Qt似乎有一些我可以用来避免在这里重新发明轮子的类,但是我担心一些比特会如何组合在一起.
具体来说,如果我创建了一些C类,我需要通过SWIG公开它们.其中一些类可能是Qt类的子类,或者在其公共接口中暴露了Qt的东西.这似乎可能引发一些并发症.
在Python,PyQt和PySide中,Qt已经有两个接口.可能会出于许可的原因使用PySide.关于如何让Qt类的SWIG包装的自定义子类与其中任何一个一起玩得很好,我有多痛苦?我应该提前了解哪些并发症?
解决方法:
PyQt通过SIP将C代码暴露给Python; PySide通过Shiboken执行此操作.两者都具有与SWIG大致相同的功能(除了它们仅支持“扩展C到Python”,而SWIG还有Ruby,Perl,Java等的后端). SWIG,SIP和Shiboken都没有设计为彼此互操作.您不能方便地使用SWIG使用Qt所需的C扩展来包装任何代码(以支持信号和插槽),我不知道在尝试互操作SIP包装(或Shiboken包装)和SWIG时可能会有什么风险等待您包裹的代码.
为什么,请问,您选择使用两种不同的等效方法来包装C代码库的不同部分(Qt通过SIP或Shiboken,其他一切通过SWIG)?如果你仍然可以重新考虑这个奇怪的设计决定,我会认真地建议你这样做.
如果您选择的SWIG是刻在石头上的,那么每当您使用Qt扩展(即插槽或信号)包装C代码时,我预测会遇到大麻烦,并且所有相关人员通常都会非常悲惨.如果你选择一种方法来包装并坚持下去,那么问题应该大大减少.我没有Shiboken的实际经验(这有点太新了,我现在几乎不再做GUI应用程序……我的世界上所有的网络应用程序! – ),但过去曾使用过SIP这个角色(回归之前它已经得到了很好的记录 – 这些日子在我看来它的出色记录,并且Shiboken的肤浅细读给了我同样的印象)我可以高度推荐它(确实如果我可以选择它可能是一个选择可能更好即使项目中没有涉及Qt代码,也要转向SWIG).
内容总结
以上是互联网集市为您收集整理的c – 在Python中使用自定义Qt子类全部内容,希望文章能够帮你解决c – 在Python中使用自定义Qt子类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。