gpt4 book ai didi

python - QAction 触发信号未传递检查参数

转载 作者:太空宇宙 更新时间:2023-11-04 01:09:52 28 4
gpt4 key购买 nike

我制作了一个带有 QAction 的菜单栏,它被设置为可检查

self.display_features_action = QtGui.QAction("Show Features", parent)
self.display_features_action.setCheckable(True)
self.display_features_action.setChecked(True)

然后我连接到这个

class MyClass:
def __init__(....)
....
self.display_features_action.triggered.connect(self.my_slot)

def my_slot(self, checked)
....

但是当只提供一个参数时,我得到一个运行时错误,my_slot 方法将参数带入参数。为什么检查的参数没有随信号一起发送?

最佳答案

在 PySide 中,带有默认参数(例如 triggeredclicked)的信号处理似乎与 PyQt 中的不同。前者不允许在接收槽中有任何位置参数,但后者会毫无怨言地愉快地丢弃未使用的参数。

在 PySide 和 PyQt 中,具有默认参数的信号实际上有两个重载:一个什么也不发送的“无操作”版本(或者,在 PyQt 中,总是发送 False),和一个“active” "版本,它发送当前选中的状态。

“无操作”版本是默认的,因此要获得“事件”版本,您必须明确选择它,如下所示:

    action.triggered[bool].connect(slot)

至于插槽签名:在 PySide 中,最可靠的解决方案可能是这样的:

    def slot(self, checked=False):

关于python - QAction 触发信号未传递检查参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28318281/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com