gpt4 book ai didi

python-2.7 - QtGui.QPushButton.clicked.connect() 带有带有参数的函数

转载 作者:行者123 更新时间:2023-12-02 04:11:11 29 4
gpt4 key购买 nike

我想在单击 QtGui.QPushButton 时运行一个带有参数的函数(例如 my_func(int, str, int))。代码如下

my_btn = QtGui.QPushButton()
my_btn.clicked.connect(my_func(my_int, my_str, my_second_int))

产生以下运行时错误:无法连接信号clicked()

我怎样才能做到这一点?

最佳答案

当使用connect时,您只传递可调用函数

my_btn.clicked.connect(my_func)

在您的示例中,您实际上是在调用 my_func在连接代码运行之前运行。所以它试图连接从 my_func 返回的任何值。 ,但它不起作用。

你想要做的是创建一个partial function,这是一个已经预先填充了部分或全部函数参数的函数。 Python 标准库中有一个函数可以执行此操作,称为 functools.partial

from functools import partial

my_btn.clicked.connect(partial(my_func, my_int, my_str, my_second_int))

这将创建一个部分函数,该函数将调用 my_func带有位置参数 my_int , my_str ,和my_second_int ,并且该部分功能连接到按钮 clicked信号。

关于python-2.7 - QtGui.QPushButton.clicked.connect() 带有带有参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36665578/

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