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, 14:47
Сообщение #2


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

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

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




Репутация:   29  


1. Устанавливаю родителя виджету. Читай про объектную модель Qt, что бы понять зачем это нужно. Без этого понимания дальше двигаться в освоении Qt просто бессмысленно.
2. Потому что я писал эту функцию внутри описания класса, а затем тупо скопировал в сообщение. Т.е.
class Widget : public QWidget
{
  ...  
public slots:
    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));
    }
};

3. Тут удаляются любые пробельные символы в строке. Читай про регулярные выражения.

По всем вопросам можно получить подробный ответ в доках, или скачай книгу Макса Шлее по Qt, она на русском.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




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