Михаиллл
Aug. 20, 2019, 1:58 a.m.

Как в QML в TextField вводить только цифры

TextField

Добрый день.
Как в QML в TextField сделать возможность ввода только цифр?

3

Do you like it? Share on social networks!

11
Pavel K.
  • Aug. 20, 2019, 1:11 p.m.
  1. TextField {
  2. id: digits
  3.  
  4. width: parent.width
  5. height: parent.height
  6. placeholderText: qsTr("Input number")
  7. inputMethodHints: Qt.ImhDigitsOnly
  8. }

Подробнее тут

    Михаиллл
    • Aug. 20, 2019, 5:39 p.m.

    Это не помогло, буквы и пробелы все ровно вводятся

      Evgenii Legotckoi
      • Aug. 20, 2019, 5:41 p.m.
      • (edited)

      Можно добавить валидатор. Вот например таким образом.

      1. import QtQuick 2.2
      2. import QtQuick.Controls 1.2
      3.  
      4. TextField {
      5. validator: IntValidator {bottom: 11; top: 31;}
      6. focus: true
      7. }
        Михаиллл
        • Aug. 20, 2019, 5:42 p.m.

        Так работает

        1. validator: IntValidator {bottom: 1; top: 100000}
          Evgenii Legotckoi
          • Aug. 20, 2019, 5:42 p.m.
          • The answer was marked as a solution.

          Или например валидатор с регулярным выражением.

          1. TextInput {
          2. id: hexNumber
          3. validator: RegExpValidator { regExp: /[0-9A-F]+/ }
          4. }
            Михаиллл
            • Aug. 20, 2019, 10:34 p.m.

            Если делаю так, то не работает, т.к. слишком большое число

            1. validator: IntValidator {bottom: 1; top: 99999999999}

            а этот вариант не работает

            1. validator: RegExpValidator { regExp: /[0-9A-F]+/ }

            Скажите пожалуйста, как сделать с большим числом?

              Evgenii Legotckoi
              • Aug. 20, 2019, 10:44 p.m.

              Ну вообще это я вам не решение вашей задачи кинул, а просто как пример... Регулярку вам надо было бы самому придумать..

              Ну вот так будет работать

              1. TextField {
              2. validator: RegExpValidator { regExp: /[0-9]+/ }
              3. focus: true
              4. anchors.centerIn: parent
              5. width: 200
              6. maximumLength: 11
              7. }
                Михаиллл
                • Aug. 20, 2019, 11:36 p.m.

                Спасибо

                  Михаиллл
                  • Aug. 21, 2019, 12:05 a.m.

                  Но все равно вводятся все символы, но если есть буквы, то сбрасывается

                    Evgenii Legotckoi
                    • Aug. 21, 2019, 12:08 a.m.

                    идеального решения вам никто не обещал

                      Михаиллл
                      • Aug. 21, 2019, 12:10 a.m.

                      Нужно будет попробовать подставть другой тип данных, может заработае
                      validator: IntValidator {bottom: 1; top: 99999999999}

                        Comments

                        Only authorized users can post comments.
                        Please, Log in or Sign up
                        • Last comments
                        • AK
                          April 1, 2025, 11:41 a.m.
                          Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
                        • Evgenii Legotckoi
                          March 9, 2025, 9:02 p.m.
                          К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
                        • VP
                          March 9, 2025, 4:14 p.m.
                          Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
                        • ИМ
                          Nov. 22, 2024, 9:51 p.m.
                          Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                        • Evgenii Legotckoi
                          Oct. 31, 2024, 11:37 p.m.
                          Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup