crossplatform.ru

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

> Использование arg()
dsp
  опции профиля:
сообщение 10.2.2011, 5:30
Сообщение #1


Студент
*

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

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




Репутация:   0  


В одном из примеров приложений для создания надписи на кнопках используется такие строчки

     for (int i = 0; i < NumButtons; ++i) 
              {
                  buttons[i] = new QPushButton(tr("Button %1").arg(i + 1));
                  layout->addWidget(buttons[i]);
              }


Вопросы:

1) Правильно ли я понял, что функция arg() конвертирует числа в строки? И то значение, которое будет возвращено этой функцией передается в строку в .. %1 (как это называется %1? маркеры?).
2) "За символом '%' может следовать символ 'L', когда последовательность заменяется локализованным представлением a. " Вот это я совсем не понял.

Пример:

QLocale::setDefaultLocale(QLocale::English, QLocale::UnitedStates);
    str = QString("%1 %L2 %L3")
            .arg(12345)
            .arg(12345)
            .arg(12345, 0, 16);
    // str == "12345 12,345 3039"


не понял, как получаем 12,345 3039. И на что влияет 'L'

3) Так работает:
 buttons[i] = new QPushButton(tr("Button %1").arg(i + 1));
,

а вот так уже нет:

buttons[i] = new QPushButton(("Button %1").arg(i + 1));


tr() как я понял для удобства локализации. С ней "надпись становится как бы строкой и arg() все делает правильно"?

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
dsp
  опции профиля:
сообщение 10.2.2011, 7:33
Сообщение #2


Студент
*

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

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




Репутация:   0  


Я читал про arg(), но из фразы ""За символом '%' может следовать символ 'L', когда последовательность заменяется локализованным представлением a" мне не понятно что такое локализованное представление.

А так, все понятно, спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 15.1.2025, 14:50