2016-08-04 7 views

ответ

0

Для этого конкретного примера можно использовать QValidator класс, который обеспечивает проверку ввода текста, см пример ниже:

import sys 
from PyQt4 import QtGui, QtCore 
from PyQt4.QtCore import Qt, QRegExp 
from PyQt4.QtGui import QRegExpValidator 


def window(): 
    app = QtGui.QApplication(sys.argv) 
    win = QtGui.QWidget() 

    flo = QtGui.QFormLayout() 

    e1 = QtGui.QLineEdit("0x300000000") 
    validator = QRegExpValidator(QRegExp("0x[3-4][0-9A-Fa-f]{1,8}")) 
    e1.setValidator(validator) 
    flo.addRow("Hexadecimal", e1) 

    win.setLayout(flo) 
    win.setWindowTitle("PyQt") 
    win.show() 

    sys.exit(app.exec_()) 

if __name__ == '__main__': 
    window() 
+0

Это валидатор будет считать допустимым значение «0x30», регулярное выражение должно быть «0x [3-4] [0-9A-Fa-f] {8}» вместо этого. Даже тогда он по-прежнему позволяет вводить промежуточные состояния, которые могут быть исправлены путем переопределения его метода 'fixup(). – mata

Смежные вопросы