【问题标题】:PyQT vs PyObjc / Cocoa-PythonPyQT 与 PyObjc / Cocoa-Python
【发布时间】:2011-12-09 14:13:16
【问题描述】:

我正在考虑使用 Python 为 OS X 开发一个应用程序。我不了解 Objective C,现在不想学习它。

我知道并喜欢 Python。我正在尝试确定要使用的 GUI 工具包。我已经有一点 PyQT 的经验,但并不多。我还看到 PyObjc 或 Cocoa-Python 似乎允许在 Python 中使用 Cocoa UI 组件。

我很好奇是否有人对 PyObjC 如何叠加到 PyQT 有任何意见。我会放弃跨平台能力,但我不确定我会获得什么。

我现在倾向于 PyQT,但想看看大家的想法。我对 PyQT 的最大厌恶是必须为信号和插槽传递字符串。 PyObjC 类似吗?

【问题讨论】:

  • 不喜欢 PyQt 因为信号和槽?这就是 为什么我在任何其他工具包上使用它的原因。您要制作什么类型的应用程序?
  • 我一点也不讨厌信号和插槽我喜欢这个概念。我只是不喜欢在字符串中传递 C++ 函数声明。也许我做错了?
  • 我不记得这样做了。也许您正在谈论传递 C++ 数据类型(intbool 等)?该应用程序有什么特别之处吗?我问是因为一些工具包提供了很好的绑定和数据类型。
  • 我有几个想法,但没有什么具体的。我主要是想学习一些通用的 Python UI 技能。我以编写 Java 代码为生,但我非常喜欢 Python 用于我的个人项目和努力。

标签: python user-interface pyqt signals-slots pyobjc


【解决方案1】:

如果阻止您使用 PyQt 的唯一原因是在信号中传递字符串,那么最新的语法应该让您的选择更容易。旧语法(仍然可以使用)如下所示:

self.connect(self.action, SIGNAL('triggered()'), self.handler)

new style signals 更像pythonic:

self.action.triggered.connect(self.handler)

【讨论】:

  • 上次我使用 PyQT 时只存在旧式信号。这种新风格好多了。出于许可原因,我可能会选择 PySide。谢谢!
  • 没见过 this 语法。绝对是一个进步!
  • PySide 有类似的语法吗?我想我可能需要使用它,因为我打算出售我的应用程序并且不认为我可以发布源代码。
  • @Jon。我没有太多使用 PySide,但我很确定语法实际上 99% 相同。有关差异的详细信息,请参阅here
  • @Jon 是的,PySide 使用几乎相同的机制来连接信号和插槽。他们的文档是here。我在一个大型应用程序中使用 PySide,到目前为止运气很好。
猜你喜欢
  • 1970-01-01
  • 2010-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-14
  • 1970-01-01
相关资源
最近更新 更多