PyQt:十六进制的QLineEdit输入掩码

时间:2016-08-04 23:10:14

标签: python pyqt pyqt4

如何使用pyqt的QLineEdit输入掩码仅限制十六进制数的9位数。例如, 我想限制用户只输入从0x300000000到0x400000000的十六进制

1 个答案:

答案 0 :(得分:1)

对于此特定示例,您可以使用提供输入文本验证的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()