Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Caduceus от Сентябрь 23, 2010, 20:39



Название: Использовать QObject::tr вне классов QObject?
Отправлено: Caduceus от Сентябрь 23, 2010, 20:39
У меня есть статический массив строк глобальный. Ни в каком классе от не находится. Могу ли я испольщовать QObject::tr для корректоного перевода этих строк будущем?


Название: Re: Использовать QObject::tr вне классов QObject?
Отправлено: Авварон от Сентябрь 23, 2010, 21:07
теоретически - да, практически tr должен зваться после того, как создан QApplication, насколько я знаю


Название: Re: Использовать QObject::tr вне классов QObject?
Отправлено: Blackwanderer от Сентябрь 24, 2010, 06:05
Насчет  необходимости создания объекта QCoreApplication/QApplication утверждать не возьмусь. Но в принципе вот такой вот код вполне работает:
Код:
int main(int argc, char *argv[])
{
...
QCoreApplication app(argc, argv);
...
QTextStream cout(stdout);
...
switch(checkSettings())
{
case Absent:
...
cout << QObject::tr("Был создан файл настроек по умолчанию. "
"Измените настройки на желаемые и запустите программу снова.\n");
break;
case Outdated:
...
cout << QObject::tr("Файл настроек программы был обновлен. "
"Измените новые настройки на желаемые и запустите программу снова.\n");
break;
case Actual:
...
break;
}
return 0;
}


Название: Re: Использовать QObject::tr вне классов QObject?
Отправлено: lit-uriy от Сентябрь 24, 2010, 07:21
QCoreApplication::translate()


Название: Re: Использовать QObject::tr вне классов QObject?
Отправлено: Barmaglodd от Сентябрь 24, 2010, 09:46
QT_TRANSLATE_NOOP
Там и пример использования есть.