Ответы пользователя по тегу Qt
  • QLineedit: как разделить число на разряды при вводе (1500000) в (1 500 000)?

    Gizmich
    @Gizmich Автор вопроса
    Собственно такое тоже будет работать:
    connect(lineEdit,SIGNAL(textEdited(QString)),this,SLOT(FormatText()));
    void Dialog::FormatText()
    {
        QString str=lineEdit->text().replace(QChar(160),""); //delete spacess
        QString str_2=QString("%L1").arg(str.toLongLong(),-1,'f',0,' '); //format
    
        lineEdit->setText(str_2);
    }

    Сигнал textEdited(QString) испускает только при редактировании пользователем и не реагирует на метод .setText(const QString &)
    Пришлось "захардкодить" пробел, потому как форматирование по "L" вставляло пробел в другой кодировке и метод
    QString::replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
    не срабатывал...
    Дальше осталось только корректно обрабатывать удаление пробелов, поведение курсора и переместить все это в наследника от QLineEdit
    Ответ написан
    Комментировать