@tschin

Почему QSpinbox разрешает ввод нуля?

Здравствуйте! Есть QSpinbox, в нем заданы граничные значения от 1 до 83. Значение по-умолчанию - 1. Тем не менее, спинбокс пропускает (дает ввести) такие значения:
0000000
01
083
0

То есть, разрешает ввести ноль. Конечно, после того, как ввод закончен, ноль меняется на значение по-умолчанию. Но я бы хотел вообще запретить ввод нуля. Как это сделать?
  • Вопрос задан
  • 388 просмотров
Пригласить эксперта
Ответы на вопрос 1
@khrisanfov
Программист
Вам нужно наследовать класс QSpinBox и реализовать метод validate

class SpinBox : public QSpinBox
{
public:
    SpinBox(QWidget *parent = 0) : QSpinBox(parent) {}

    QValidator::State validate(QString &input, int &pos) const
    {
        if (input != "0") {
            return QValidator::Acceptable;
        } else {
            return QValidator::Invalid;
        }
    }
};
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы