如何设置只有当两行编辑输入小部件包含文本时,按钮才能工作



我创建了两行Edit输入小部件和一个按钮。我需要设置按钮应该只在两行编辑包含文本时工作。我需要将两行编辑输入小部件设置为强制性的。

您可以将QLineEdit.textEdited信号连接到一个函数,以检查是否所有必需的字段都包含文本,并相应地启用/禁用该按钮。这里有一个例子:

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class Template(QWidget):
def __init__(self):
super().__init__()
self.f1 = QLineEdit()
self.f1.textEdited.connect(self.check_input)
self.f2 = QLineEdit()
self.f2.textEdited.connect(self.check_input)
self.btn = QPushButton('Enter')
self.btn.setDisabled(True)
form = QFormLayout(self)
form.addRow('Field 1', self.f1)
form.addRow('Field 2', self.f2)
form.addRow(self.btn)
def check_input(self):
if self.f1.text() and self.f2.text():
self.btn.setEnabled(True)
else:
self.btn.setDisabled(True)

if __name__ == '__main__':
app = QApplication(sys.argv)
gui = Template()
gui.show()
sys.exit(app.exec_())

最新更新