PyQt 中的信号和槽

Posted

技术标签:

【中文标题】PyQt 中的信号和槽【英文标题】:Signals and slots in PyQt 【发布时间】:2010-04-02 21:47:21 【问题描述】:

过去我在 C++ 中有过一些 Qt 的经验。我现在开始使用 PyQt,发现它有点令人困惑。除了 Riverbank 的少量文件外,似乎没有任何确定的文件来源。我想我想知道的第一件事是 PyQt 有一个初始的驼峰,它确实变得更容易了。 [编辑: 我遇到的主要问题是由于拼写错误 - init 而不是 __init__。我现在不觉得太难了:P]

PyQt 的PyQt docs talk about new style signals and slots 以及旧样式。他们认为新样式更好,但我想知道这是否是大多数 PyQt 用户所做的。

【问题讨论】:

【参考方案1】:

是的,就是这样。新语法更清晰,为什么不呢? 请注意,当您尝试按名称连接插槽时,您必须显式调用 connectSlotsByName,因为在执行和连接它们之前没有预处理器可以工作。

PS:此外,用于信号/插槽连接的 C++ 语法很丑陋,而且旧的 PyQt 语法毫无理由地非常相似,所以我很高兴看到 PyQt 中的这种变化。

PS2:最近这里有一个关于这个的问题,看看吧。

【讨论】:

哎呀 :) 这不是俄语,只是一个错字。它“出局了”。在俄罗斯charmap中。【参考方案2】:

参考见: PyQt Class Reference - 它非常全面,并通过示例进行了详细说明。大多数示例都是用 C++ 编写的,虽然我是 Python 新手,但我并不觉得翻译成 Python 很困难。

如果您是一位经验丰富的开发人员并开始使用 Python 和 PyQt,这是一本非常好的书 - 关于我所知道的唯一一本关于该主题的完整书籍:Rapid GUI Programming with Python and Qt.

信号和槽:我总是在 PyQt 中使用新的信号和槽语法,它简单而优雅——更“pythonic”。 PyQt 很棒,但在许多方面它仍然非常像 C++ - 他们对“pythonate”它做的越多越好。

【讨论】:

以上是关于PyQt 中的信号和槽的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5——信号和槽初探

PyQt4 信号和槽 - QToolButton

PyQt5系列教程信号和槽

python pyqt5 自定义信号和槽

Qt信号和槽的问题

pyqt信号和槽应用举例