【问题标题】:How to pass arguments to a PyQT5 button function? [duplicate]如何将参数传递给 PyQT5 按钮函数? [复制]
【发布时间】:2018-06-21 15:02:44
【问题描述】:

我是 QT 新手,在使用 QT 设计器生成的 GUI 中具有参数的函数时遇到了困难。如何将按钮绑定到具有参数的函数?我可以让按钮使用打印“hello world”功能。当我单击按钮时,带有参数的函数会导致布尔值“False”。

import GUITESTFUNCS    
self.pushButton.clicked.connect(GUITESTFUNCS.display)

我为我的 GUI 按钮导入的功能是...

#practice functions for GUITEST

a = 8

def display(a):
    print(str(a))

【问题讨论】:

标签: python qt pyqt qt5 pyqt5


【解决方案1】:

当您将信号连接到函数时,传递给函数的任何参数都是由发出的信号生成的,而不是您在代码中其他地方定义的任意值。您可以在QT docs 中查找clicked 信号,并看到该信号的参数是一个布尔值,仅在按钮可检查时才相关。在您的情况下,该按钮要么不可检查,要么未被检查,这就是您将 False 作为 display 函数的参数的原因。

如果您想将信号连接到函数并让该函数接收信号不生成的参数,我通常会这样做:

from functools import partial

def display(arg):
    print(arg)

a = 8

display_a = partial(display, a)

self.pushButton.clicked.connect(display_a)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 2020-02-21
    • 1970-01-01
    • 2021-02-14
    • 2021-10-09
    • 2017-04-25
    • 1970-01-01
    相关资源
    最近更新 更多