PyQT vs PyObjc / Cocoa-Python
我正在考虑使用python为OSX开发一个应用程序。我不知道目标C,也不想现在就学习。
我知道也喜欢Python。我正在尝试确定要使用的GUI工具包。我已经对Pyqt有了一些经验,但没有太多经验。我还看到pyobjc或cocoa python似乎允许使用来自python的cocoa ui组件。
我很好奇是否有人对Pyobjc如何堆积到Pyqt有任何意见。我将放弃跨平台的能力,我不确定会得到什么。
我现在正倾向于派克,但想看看你们的想法。我对Pyqt最大的厌恶是必须绕过信号和插槽的字符串。Pyobjc相似吗?
- 你不喜欢Pyqt是因为信号和插槽?这就是为什么我把它用于任何其他工具箱。你想申请什么类型的申请?
- 我一点也不讨厌信号和插槽,我喜欢这个概念。我只是不喜欢在字符串中传递C++函数声明。也许我做错了?
- 我不记得这样做了。也许你是在谈论通过C++数据类型(EDCOX1,0,1,EDCOX1,等等)。这个应用程序有什么特别的功能吗?我问是因为有些工具包提供了很好的绑定和数据类型。
- 我有几个想法,但没有具体的。我主要想学习一些通用的PythonUI技巧。我写Java代码是为了生存,但真正享受Python的个人项目和努力。
如果唯一阻止您使用pyqt的是在信号中传递字符串,那么最新的语法应该使您的选择更加容易。旧语法(仍可以使用)如下所示:
1
| self.connect(self.action, SIGNAL('triggered()'), self.handler) |
但是新型的信号更像是Python:
1
| self.action.triggered.connect(self.handler) |
- 上一次我使用Pyqt时,只存在旧样式的信号。那种新样式好多了。我可能会选择Pyside是出于许可的原因。谢谢!
- 没有看到这个语法。绝对是进步!
- Pyside有相似的语法吗?我认为我可能需要使用它,因为我计划出售我的应用程序,而不认为我可以发布源代码。
- @乔恩。我没有使用过pyside,但我很确定语法实际上99%相同。有关差异的详细信息,请参阅此处。
- @是的,Pyside使用几乎相同的机制来连接信号和插槽。他们的文件在这里。我正在一个大型应用程序中使用Pyside,到目前为止我已经非常幸运了。