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

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

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

Автор: Mashko 8.4.2009, 18:17

Ребят, я в Qt новичок, подскажите, пожалуйста, как будет выглять строка:

cString.Format(_T(" %.14f %.14f"), x, y);

на Qt, не могу ничего найти подобное Format в QString

Автор: SABROG 8.4.2009, 18:43

Можно воспользоваться методом QString & QString::sprintf ( const char * cformat, ... ), но тролли не советуют этого делать.

QString str = QString::sprintf(" %.14f %.14f", x, y);


Т.ч. как-то так:

QString str = QString(" %1 %2").arg(x, 0, 'f', 14).arg(y, 0, 'f', 14);


Или даже так:

QString str;
QTextStream(&str) << qSetRealNumberPrecision(14) << " " << x << " " << y;


Есть еще методы, которые работают уже с обычными Си строками.

int qvsnprintf ( char * str, size_t n, const char * fmt, va_list ap )

char buf[256];
qsnprinf(&buf, sizeof(buf)/buf[0], " %.14f %.14f", x, y);


int qsnprintf ( char * str, size_t n, const char * fmt, ... )

void myprint (char *format, ...)
{
  char buf[256];
  va_list args;
  va_start (args, format);
  qvsnprintf(&buf, sizeof(buf)/buf[0], format, args);
  ...
  va_end (args);
}

myprint(" %.14f %.14f", x, y);

Автор: Mashko 8.4.2009, 18:54

спасибо

Автор: trdm 8.4.2009, 19:02

Тысячная тема по Qt.
С юбилейчиком :)

Автор: ViGOur 8.4.2009, 19:27

Цитата(trdm @ 8.4.2009, 20:02) *
Тысячная тема по Qt.
С юбилейчиком
:)

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