Форум сайта python.su
vista, python 2.6.3 PyQt 4.6
в окне - три QLineEdit
в каждом добавлен метод valid, который сравнивает ввод пользователя с заданным значением valval
надо запретить выход из lineedit, если введена не та информация
у меня курсор начинает мигать сразу в двух lineeditах (и в том котором хочу остаться, и в том куда не должен попасть)
что не так делаю?
# -*- coding: utf-8 -*-
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import PyQt4.Qt
import sys
class myLineEdit(QLineEdit):
def valid(self):
if self.text()==self.valval:
return True
else:
return False
class ef(QObject):
outFoc=None
inFoc=None
def eventFilter(self, ob, ev):
if ev.type()==QEvent.FocusIn:
print "in", ob.valval
return False
if ev.type()==QEvent.FocusOut:
print "out", ob.valval
if ob.valid():
return False
else:
return True
return False
if __name__ == "__main__":
app = QApplication(sys.argv)
MyApp = QApplication(sys.argv)
app = QApplication(sys.argv)
q=QDialog()
ef=ef()
f=QFormLayout()
l1=myLineEdit("1")
l2=myLineEdit("2")
l3=myLineEdit("3")
l1.installEventFilter(ef)
l2.installEventFilter(ef)
l3.installEventFilter(ef)
l1.valval="1"
l2.valval="2"
l3.valval="3"
f.addRow("label 1", l1)
f.addRow("label 2", l2)
f.addRow("label 3", l3)
q.setLayout(f)
q.show()
sys.exit(app.exec_())
Офлайн