Пожалуйста, всегда предоставляйте минимально-воспроизводимый пример, который демонстрирует проблему.
Ваша задача может выглядеть примерно так:
import sys
from PyQt5 import QtCore, QtWidgets,QtGui
class MainWindow(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.line1 = QtWidgets.QLineEdit()
self.line1.setObjectName('line1')
self.line1.setMaxLength(4)
self.line1.textEdited.connect(
lambda text, obj=self.line1.objectName(): self.change_textEdited(text, obj))
self.line2 = QtWidgets.QLineEdit()
self.line2.setObjectName('line2')
self.line2.setMaxLength(6)
self.line2.textEdited.connect(
lambda text, obj=self.line2.objectName(): self.change_textEdited(text, obj))
self.line3 = QtWidgets.QLineEdit()
self.line3.setObjectName('line3')
self.line3.setMaxLength(8)
self.line3.textEdited.connect(
lambda text, obj=self.line3.objectName(): self.change_textEdited(text, obj))
self.pushButton = QtWidgets.QPushButton('Button')
self.layout = QtWidgets.QVBoxLayout(self)
self.layout.addWidget(self.line1)
self.layout.addWidget(self.line2)
self.layout.addWidget(self.line3)
self.layout.addWidget(self.pushButton)
def change_textEdited(self, text, obj):
if obj == 'line1' and len(text) == 4:
self.line1.setStyleSheet("color: #00FF00;")
self.line3.setFocus()
elif obj == 'line1' and len(text) != 4:
self.line1.setStyleSheet("")
elif obj == 'line2' and len(text) == 6:
self.line2.setStyleSheet("color: #00FF00;")
self.pushButton.setFocus()
self.pushButton.setText('Все заполнили?')
self.pushButton.setStyleSheet("background-color: #90EE90;")
elif obj == 'line2' and len(text) != 6:
self.line2.setStyleSheet("")
elif obj == 'line3' and len(text) == 8:
self.line3.setStyleSheet("color: #00FF00;")
self.line2.setFocus()
elif obj == 'line3' and len(text) != 8:
self.line3.setStyleSheet("")
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
app.setFont(QtGui.QFont("Times", 14, QtGui.QFont.Bold))
w = MainWindow()
w.show()
sys.exit(app.exec_())
