在 Python 中无需单击即可执行函数 | Pyside [重复]

Posted

技术标签:

【中文标题】在 Python 中无需单击即可执行函数 | Pyside [重复]【英文标题】:Function is executed without click in Python | Pyside [duplicate] 【发布时间】:2021-04-23 04:19:35 【问题描述】:

我创建了一个带有按钮和禁用文本字段的 GUI。 我做了一个定义,当点击按钮时,应该启用文本字段, 但是当我启动程序时,无需单击按钮即可调用我的 def 函数。 我的错误是什么?

import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QStyle
from PySide6.QtCore import *
from PySide6.QtGui import QIcon
from ui_mainwindow import *


class MainWindow(QWidget):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.pushButton.clicked.connect(self.btnclick())

    def btnclick(self):
        self.ui.lineEdit.setEnabled(True)


if __name__ == '__main__':

    app = QApplication([])
    window = MainWindow()
    window.show()
    app.exec_()
    sys.exit(app.exec_())

【问题讨论】:

错字:使用self.ui.pushButton.clicked.connect(self.btnclick) 是的,现在可以使用了 :) 【参考方案1】:

是这样的:

        self.ui.pushButton.clicked.connect(self.btnclick())

该语句不传递函数,它调用函数并传递它的返回值。删除(),它应该可以工作。

【讨论】:

哦,现在可以了,不知道它可以调用该函数,不需要点击吗? 不,它在调用__init__的过程中调用该函数。当您编写self.btnclick() 时,就在此时调用该函数。该函数不返回任何内容,因此您将None 传递给pushButton.clicked.connectprint(math.sin(1))print(math.sin) 之间存在巨大差异。是一样的。 啊,好的,谢谢你的解释:)

以上是关于在 Python 中无需单击即可执行函数 | Pyside [重复]的主要内容,如果未能解决你的问题,请参考以下文章

是否可以通过 selenium webdriver 执行 OnClick javascript 函数而无需单击

无需在 Chrome 中单击鼠标右键即可检查元素

python-调用自己写的函数

在android中单击相机后,无需按确定按钮即可从相机获取图像

python函数修饰器(decorator)

JTable 无需用户单击即可停止单元格编辑