3

我正在用 PyQt4 (Python3) 编写一个 GUI 应用程序。我的一位朋友指出,使用 pyuic4 是一种不好的做法,并向我推荐了 uic 模块和按名称连接插槽功能。他没有时间解释更多,而且我的参考资料很短,我无法从他们那里掌握想法(uic 模块LoadingUIFilesAtRuntime按名称连接插槽)。

在 StackOverflow 上至少有一个相关的问题,但是那里的文献链接被破坏了。

我可以遵循标准教程并使用 pyuic 做简单的 GUI,但现在感觉有点困惑......欢迎任何好的示例和/或参考。

4

1 回答 1

3

首先,使用pyuic4当然不是“坏习惯”。

将 PyQt4 UI 导入代码的主要方法有以下三种:

  • 全部自己手写
  • 用于pyuic4自动生成可导入的 python 模块
  • 在运行时使用uic包直接加载ui文件

其中,前两个是迄今为止最常见的,您将遇到的大多数文档、教程、建议等都将使用这些方法。

PyQt4 教程的一个很好的来源可以在PyQt4 Wiki的这个部分找到。但是,我可能应该指出,尽管仍然相关,但其中许多已经很老了,因此仍然使用旧式的信号和插槽。

但是,新旧样式之间的区别并不难理解,因此可能只需要一个简单的示例即可。

这是将按钮单击信号连接到处理程序方法(又名插槽)的旧式方法:

self.connect(self.button, QtCore.SIGNAL('clicked()'), self.handleButtonClick)

这是新式的方式:

self.button.clicked(self.handleButtonClick)

正如你所看到的,新风格更简单,更pythonic。另一方面,旧样式与使用 C++ 连接信号的方式非常相似(因此在某些情况下仍然有用)。

如果您在编写 GUI 时遇到连接信号的问题,您可以随时在这里提出问题 - 但如果您提出包含示例代码的特定问题,则更容易获得好的答案。

于 2012-01-16T20:16:06.180 回答