告诉我,如何将按钮与输入字段关联起来,以便按下按钮时,从与其关联的输入字段中获取信息?
很明显,您可以编写一个函数来处理该值并将其与使用的按钮关联起来clicked.connect(),但是我有很多相同类型的字段和按钮,我需要按钮来执行相应字段的功能,并且我不想创建一座相同类型的代码。
主要.py:
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_test(object):
def setupUi(self, test):
test.setObjectName("test")
test.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(parent=test)
self.centralwidget.setObjectName("centralwidget")
self.form1 = QtWidgets.QLineEdit(parent=self.centralwidget)
self.form1.setGeometry(QtCore.QRect(40, 30, 113, 22))
self.form1.setObjectName("form1")
self.btn1 = QtWidgets.QPushButton(parent=self.centralwidget)
self.btn1.setGeometry(QtCore.QRect(180, 30, 93, 28))
self.btn1.setObjectName("btn1")
self.form2 = QtWidgets.QLineEdit(parent=self.centralwidget)
self.form2.setGeometry(QtCore.QRect(40, 80, 113, 22))
self.form2.setObjectName("form2")
self.form3 = QtWidgets.QLineEdit(parent=self.centralwidget)
self.form3.setGeometry(QtCore.QRect(40, 130, 113, 22))
self.form3.setObjectName("form3")
self.form4 = QtWidgets.QLineEdit(parent=self.centralwidget)
self.form4.setGeometry(QtCore.QRect(40, 180, 113, 22))
self.form4.setObjectName("form4")
self.btn2 = QtWidgets.QPushButton(parent=self.centralwidget)
self.btn2.setGeometry(QtCore.QRect(180, 70, 93, 28))
self.btn2.setObjectName("btn2")
self.btn3 = QtWidgets.QPushButton(parent=self.centralwidget)
self.btn3.setGeometry(QtCore.QRect(180, 130, 93, 28))
self.btn3.setObjectName("btn3")
self.btn4 = QtWidgets.QPushButton(parent=self.centralwidget)
self.btn4.setGeometry(QtCore.QRect(180, 180, 93, 28))
self.btn4.setObjectName("btn4")
test.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(parent=test)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
self.menubar.setObjectName("menubar")
test.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(parent=test)
self.statusbar.setObjectName("statusbar")
test.setStatusBar(self.statusbar)
self.retranslateUi(test)
QtCore.QMetaObject.connectSlotsByName(test)
def retranslateUi(self, test):
_translate = QtCore.QCoreApplication.translate
test.setWindowTitle(_translate("test", "MainWindow"))
self.btn1.setText(_translate("test", "PushButton"))
self.btn2.setText(_translate("test", "PushButton"))
self.btn3.setText(_translate("test", "PushButton"))
self.btn4.setText(_translate("test", "PushButton"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
test = QtWidgets.QMainWindow()
ui = Ui_test()
ui.setupUi(test)
test.show()
sys.exit(app.exec())
根据表单的编译方式,我们可以提供以下选项:
我不明白你接下来会发生什么,所以我怀疑你的形式是否最优。不过那是另一回事了。
更新:
您可以使用
setattr()/getattr()使用如下行动态创建变量: