Reputation: 45
I have a gui application with 3 QLineEdit and 2 QPushButton.
I want to put on 'True' the 'Button 1' when 'TEXT INPUT A' and 'TEXT INPUT B' are not empty, and the same on 'Button 2' if all 3 'TEXT INPUT' are not empty.
If all 3 'TEXT INPUT' have the text, buttons are 'True', if I delete for example the text in the 'TEXT INPUT C', the 'Button 2' return to "False".
Same for 'Button 1' if 'TEXT INPUT A' or 'TEXT INPUT B' return empty.
Any suggestions?
import PyQt4.QtGui as gui, PyQt4.QtCore as core
app = gui.QApplication([])
window = gui.QWidget()
window.resize(256, 0)
window.setWindowTitle('MY TITLE')
layout = gui.QVBoxLayout()
A_edit = gui.QLineEdit()
A_title = gui.QLabel('TEXT INPUT A')
A_edit.setObjectName('TITLE_A')
layout.addWidget(A_title)
layout.addWidget(A_edit)
B_edit = gui.QLineEdit()
B_title = gui.QLabel('TEXT INPUT B')
B_edit.setObjectName('TITLE_B')
layout.addWidget(B_title)
layout.addWidget(B_edit)
C_edit = gui.QLineEdit()
C_title = gui.QLabel('TEXT INPUT C')
C_edit.setObjectName('TITLE_C')
layout.addWidget(C_title)
layout.addWidget(C_edit)
button_1 = gui.QPushButton('button 1')
button_2 = gui.QPushButton('button 2')
layout.addWidget(button_1)
layout.addWidget(button_2)
button_1.setEnabled(False)
button_2.setEnabled(False)
window.setLayout(layout)
window.show()
app.exec_()
Upvotes: 1
Views: 540
Reputation: 91
you could connect the 3 lineedits to a function
A_edit.textChanged.connect(check_buttons)
B_edit.textChanged.connect(check_buttons)
C_edit.textChanged.connect(check_buttons)
And in the check_buttons function you check each lineEdit
check_buttons():
a = A_edit.text()
b = B_edit.text()
c = C_edit.text()
if a and b:
button_1.setEnabled(True)
else:
button_1.setEnabled(False)
if a and b and c:
button_2.setEnabled(True)
else:
button_2.setEnabled(False)
Upvotes: 3