Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ QString, множество аргументов...

Автор: Я 31.10.2007, 8:48

Я плохо знаком с Qt, и не знаю как c QString сотворить то же, что я делал в MFC с CString, например:
CString str;
str.Format( TEXT("Число: %d, строка: %s"), nCount, strText);

Может подскажете?

Автор: ViGOur 31.10.2007, 9:06

Делается это так:

int n = 10;
QString sz = QString("Число: %1, строка %2.").arg( n).arg("simple text");
А описание что да как можешь прочитать http://www.crossplatform.ru/documentation/qtdoc4.3/qstring.php#arg, правда пока на английском. :)

Автор: Я 31.10.2007, 9:13

Спасибо, все работает, но почему-то русские буквы не читаемы. :(

Автор: ViGOur 31.10.2007, 9:23

Тебе нужно использовать кодек для перевода твоей строки в юникод:

int n = 10;
QString sz = QString("Число: %1, строка %2.").arg( n).arg("simple text");

QTextCodec *pCodec=QTextCodec::codecForName("Windows-1251");
sz = pCodec->toUnicode( sz.toAscii());

Автор: Я 31.10.2007, 9:26

Спасибо, работает. :)

Автор: Гость 2.11.2007, 2:41

Или просто хранить исходники в UTF-8, что ИМХО правильнее.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)