![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Dimix |
![]()
Сообщение
#1
|
![]() Студент ![]() Группа: Участник Сообщений: 74 Регистрация: 24.11.2010 Пользователь №: 2215 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Помогите проблема в количестве цыфр. По данному коду больше 4 цыфр нельзя ввести. Что не так?
|
|
|
silver47 |
![]()
Сообщение
#2
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: ![]() ![]() ![]() |
Зачем локаль к эдиту в который ты только цифры вводишь?
|
|
|
Rocky |
![]()
Сообщение
#3
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
Dimix, а что ты вообще хочешь сделать?
|
|
|
igor_bogomolov |
![]()
Сообщение
#4
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
silver47, Rocky, что здесь непонятно, нужно привести число к принятому в данной стране формату. Это может быть замена точки на запятую (или наоборот), раставление отступов и т.д.
Помогите проблема в количестве цыфр. По данному коду больше 4 цыфр нельзя ввести. Что не так? Всё просто. Это потому что "1 100" не приводится к double из-за пробела и возвращается 0-------------- Замечания по коду: 1. textChanged следует заменить на textEdited иначе слот будет вызываться несколько раз. Первый когда пользователь вводит текст, второй когда этот текст меняешь программно в слоте. 2. Почему localeComing не принимает передаваемую ему строку? |
|
|
Dimix |
![]()
Сообщение
#5
|
![]() Студент ![]() Группа: Участник Сообщений: 74 Регистрация: 24.11.2010 Пользователь №: 2215 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Замечания по коду: 1. textChanged следует заменить на textEdited иначе слот будет вызываться несколько раз. Первый когда пользователь вводит текст, второй когда этот текст меняешь программно в слоте. 2. Почему localeComing не принимает передаваемую ему строку? Я Вас правильно понял. Нужно вот так?
А что делает QLineEdit::setLocale();? Может там тоже нужно формат задать? |
|
|
igor_bogomolov |
![]()
Сообщение
#6
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
Цитата Я Вас правильно понял. Нужно вот так? void localeComing(const QString &locStr);
Цитата А что делает QLineEdit::setLocale();? нет такого методаDimix, да вы в первый раз почти всё правильно делали. Просто перед toDouble(AddComingEditSum->text()); выкиньте лишние пробелы из строки и всё должно заработать |
|
|
Dimix |
![]()
Сообщение
#7
|
![]() Студент ![]() Группа: Участник Сообщений: 74 Регистрация: 24.11.2010 Пользователь №: 2215 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата выкиньте лишние пробелы из строки Нельзя нужно чтобы пользователь вводил и оно отделяло тысячи от сотен.
|
|
|
igor_bogomolov |
![]()
Сообщение
#8
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
Dimix, блин, я же уже дважды написал в чём проблема и что нужно сделать
![]() Цитата Это потому что "1 100" не приводится к double из-за пробела и возвращается 0 Цитата перед toDouble(AddComingEditSum->text()); выкиньте лишние пробелы из строки
|
|
|
Dimix |
![]()
Сообщение
#9
|
![]() Студент ![]() Группа: Участник Сообщений: 74 Регистрация: 24.11.2010 Пользователь №: 2215 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
СПАСИБО ОГРОМНОЕ. Но я хочу еще поинтересоватся.
1.AddComingEditSum = new QLineEdit(this); //зачем this? 2.void localeComing(const QString &text) //почему здесь не написано void MainWindow::localeComing(const QString &text) 3.(value.remove(QRegExp("\\s+")) //вот эту строчку я вообще не понимаю... Если несложно проконсультируйте или дайте ссылку где про это почитать так чтоб разобратся. Еще раз ОГРОМНОЕ СПАСИБО igor_bogomolov! |
|
|
igor_bogomolov |
![]()
Сообщение
#10
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
1. Устанавливаю родителя виджету. Читай про объектную модель Qt, что бы понять зачем это нужно. Без этого понимания дальше двигаться в освоении Qt просто бессмысленно.
2. Потому что я писал эту функцию внутри описания класса, а затем тупо скопировал в сообщение. Т.е.
3. Тут удаляются любые пробельные символы в строке. Читай про регулярные выражения. По всем вопросам можно получить подробный ответ в доках, или скачай книгу Макса Шлее по Qt, она на русском. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 15.6.2025, 1:53 |