crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QLocale
Dimix
  опции профиля:
сообщение 21.1.2011, 8:46
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 74
Регистрация: 24.11.2010
Пользователь №: 2215

Спасибо сказали: 0 раз(а)




Репутация:   0  


AddComingEditSum = new QLineEdit;
AddComingEditSum->setFixedWidth(70);
AddComingEditSum->setText("0");

connect(AddComingEditSum, SIGNAL(textChanged(QString)), this, SLOT(localeComing()));
void MainWindow::localeComing()
{
    QLocale ukrLocale(QLocale::Ukrainian, QLocale::Ukraine);
    double sum = ukrLocale.toDouble(AddComingEditSum->text());
    AddComingEditSum->setText(ukrLocale.toString(sum));
}
Помогите проблема в количестве цыфр. По данному коду больше 4 цыфр нельзя ввести. Что не так?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
igor_bogomolov
  опции профиля:
сообщение 21.1.2011, 13:53
Сообщение #2


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Dimix, блин, я же уже дважды написал в чём проблема и что нужно сделать :mad:
Цитата
Это потому что "1 100" не приводится к double из-за пробела и возвращается 0
Цитата
перед toDouble(AddComingEditSum->text()); выкиньте лишние пробелы из строки

    AddComingEditSum = new QLineEdit(this);
    AddComingEditSum->setFixedWidth(170);

    connect(AddComingEditSum, SIGNAL(textEdited(QString)), this, SLOT(localeComing(QString)));

    void localeComing(const QString &text)
    {
        QString value = text;
        QLocale ukrLocale(QLocale::Ukrainian, QLocale::Ukraine);
        double sum = ukrLocale.toDouble(value.remove(QRegExp("\\s+")));
        AddComingEditSum->setText(ukrLocale.toString(sum, 'f', 0));
    }
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Dimix
  опции профиля:
сообщение 21.1.2011, 14:35
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 74
Регистрация: 24.11.2010
Пользователь №: 2215

Спасибо сказали: 0 раз(а)




Репутация:   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!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


7 чел. читают эту тему (гостей: 7, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 21.12.2024, 8:01