Найти - Пользователи
Полная версия: Проблемы с QIntValidator
Начало » GUI » Проблемы с QIntValidator
1
mitya_s_v
Хочу разрешить в поле вводить только цифры, попробовал использовать QIntValidator и почему-то у меня ничего не получается. Если создавать экземпляр класса без аргументов, то все нормально фильтруется, но можно ввести только 10 символов. Если делаю вот так:
lineEdit.setValidator(QtGui.QIntValidator(0, 20))
то у меня поле блокируется, нельзя ввести ничего и нельзя удалить ничего из поля (у меня в поле при открытие окна из файла значение по умолчанию загружается).
terabayt
QtGui.QIntValidator(минимальное_число, максимальное_число)
а не количество символов!
вот как вариант:
lineEdit.setValidator(QtGui.QRegExpValidator(QtCore.QRegExp(r'\d*'), self))
mitya_s_v
terabayt
Аааа, вон оно чего, а я то думал, что задаётся количество символов. Ну тогда все просто. Спасибо, снова выручили)
mitya_s_v
terabayt
Кстати, вы не знаете почему регулярка типа \d{0, 15} не работает?
terabayt
у меня работает
lineEdit.setValidator(QtGui.QRegExpValidator(QtCore.QRegExp(r'\d{0,15}'), self))
mitya_s_v
terabayt
У меня в поле ничего не вводится
terabayt
mitya_s_v
У меня в поле ничего не вводится
давайте код, посмотрим
вот пример:
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()
    def initUI(self):
        lineEdit = QtGui.QLineEdit(self)
        lineEdit.setValidator(QtGui.QRegExpValidator(QtCore.QRegExp(r'\d{0,15}'), self))
        lineEdit.move(60, 100)
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('Test')
        self.show()
def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
if __name__ == '__main__':
    main()
mitya_s_v
terabayt
Сейчас перепроверил и регулярку ввёл повторно, все заработало магическим образом. Руки кривые похоже.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB