在 Python 中无需单击即可执行函数 |赛德
Function is executed without click in Python | Pyside
我创建了一个带有按钮和禁用文本字段的 GUI。
我做了一个 def,当点击按钮时,应该启用文本字段,
但是当我启动程序时,我的 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())
该语句不传递函数,它调用函数并传递它的 return 值。删除 ()
它应该可以工作。
我创建了一个带有按钮和禁用文本字段的 GUI。 我做了一个 def,当点击按钮时,应该启用文本字段, 但是当我启动程序时,我的 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())
该语句不传递函数,它调用函数并传递它的 return 值。删除 ()
它应该可以工作。