Pyside (Qt) - 如何查询信号

Posted

技术标签:

【中文标题】Pyside (Qt) - 如何查询信号【英文标题】:Pyside (Qt) - How to query signal 【发布时间】:2017-02-21 21:40:24 【问题描述】:

我需要查询与“textEdited”连接相关的信号,但找不到方法。

# How the signal was created
myLineEditWidget.textEdited.connect(theSignalIwantToQuery)

感谢您的帮助

【问题讨论】:

你能更好地解释你的问题吗 我想查询连接到一个Widget发出的信号的函数 “查询函数”是什么意思? 基本上我想将“textEdited”信号转换为“returnPressed”信号,并连接相同的功能。我无法修改源代码,因此我需要在创建小部件和连接后执行此操作。 【参考方案1】:

信号不可查询。它们会立即调用它们所连接的函数。语法也不是那样工作的。它可以工作like this。

鉴于此代码:

def myFunction(self, text):
    print text

myLineEditWidget.textEdited.connect(myFunction)

在这种情况下,textEdited 是信号的名称。您可以看到 in the Qt documentation 的 QLineEdit 小部件,它在 Signals 下列出。此代码将其连接到一个名为myFunction() 的函数,该函数在条件发生时被调用。因此,当行编辑小部件对其文本进行编辑时,myFunction() 以及连接到此信号的任何其他函数(插槽)将被调用。

恭喜你发现了 Qt 并尝试掌握信号和插槽。了解它确实需要一点时间,但非常值得。

【讨论】:

谢谢你的回答,我对我使用的术语不是很清楚。 实际上,我试图查询来自小部件的信号调用的函数,以便能够创建连接到该函数的新信号(并将该函数与原始信号断开连接)。我得想点别的办法,谢谢!

以上是关于Pyside (Qt) - 如何查询信号的主要内容,如果未能解决你的问题,请参考以下文章

使用 Qt Designer 在 PySide2 中实现信号/插槽时出错

单独文件中的 PySide 信号

带信号/插槽的 PySide IPC

Pyside2信号连接 定义方法的方式

将 QML 信号连接到 PySide2 插槽

pyside 为窗口添加图片