2014-11-06 3 views
1

Я пытаюсь использовать QlineEdit.Как использовать QlineEdit для ввода целочисленных значений

Как ввести значение в панель редактирования, когда я запустил программу и получить ее, как хранимую в качестве переменной, которая будет использоваться позже. До сих пор я только узнал, как вводить текст с помощью

void parameter_settings::on_lineEdit_textEdited(const QString &arg1) 

{ 
    ui->lineEdit->setText(""); 
} 

У меня есть графический интерфейс, который требует от пользователя ввести значения в пределах определенного диапазона. Это значение будет храниться как переменная для последующего использования. Я прочитал о валидаторах, но не могу заставить его работать по назначению.

+6

Почему бы не использовать QSpinBox? – Pratham

+0

Диапазон довольно большой; от 1 до 124000, и пользователь хотел бы напрямую ввести – Duanne

+0

. Тем не менее QSpinBox будет работать в этом диапазоне. Вы можете установить минимальные и максимальные значения и, если необходимо, настроить его, наследуя QSpinBox. – Pratham

ответ

4

Я не совсем уверен, что ваш вопрос, но вы можете получить вход от QLineEdit с помощью команды text():

QString input = ui->lineEdit->text(); 

и целочисленного вход с помощью:

int integer_value = ui->lineEdit->text().toInt(); 

Как вы упомянули валидаторы: вы можете использовать валидаторы, чтобы позволить пользователю вставлять только целые числа в QLineEdit в первую очередь. Есть разные, но мне нравится использовать валидаторы RegEx. В этом случае:

QRegExpValidator* rxv = new QRegExpValidator(QRegExp("\\d*"), this); // only pos 
QRegExpValidator* rxv = new QRegExpValidator(QRegExp("[+-]?\\d*"), this); // pos and neg 
ui->lineEdit->setValidator(rxv); 

Примечание: Как уже упоминалось в комментариях Pratham, если требуется только целые числа, чтобы ввести вас, вероятно, следует использовать QSpinBox, который делает все это вне коробки и приходит с дополнительными ручками легко увеличивать и уменьшать стоимость.

+0

Я добавил строку QString input = ui-> lineEdit-> text(); Но теперь я вообще не могу вводить данные в lineEdit. Я хочу, чтобы lineEdit позволял пользователю вводить целочисленные значения в определенном диапазоне при запуске программы. Это значение будет сохранено как переменная, которая будет использоваться позже, например, частота. Извините за плохое объяснение ранее и благодарим вас за помощь. – Duanne

+0

Для определенного диапазона используется комбинация QLineEdit и [QSlider] (http://qt-project.org/doc/qt-4.8/qslider.html), которые связанные с использованием некоторых из их SLOTS и СИГНАЛОВ, могут быть полезны. Но вы, вероятно, должны сначала начать работу с lineedit. Проверьте, что вы извлекаете его значение в нужное положение в коде – Bowdzone

+0

Я пытался его исправить, но функция lineEdit больше не допускает ввода. Я отступил четыре пробела, чтобы вставить мой код, но он не отображается в правильном формате, как я могу добавить его – Duanne

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