Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Alexander_57 от Декабрь 14, 2011, 14:15



Название: Контекстное меню QLabel
Отправлено: Alexander_57 от Декабрь 14, 2011, 14:15
Добрый день специалисты Qt!
Столкнулся со следующей проблемой. Создал QLabel со свойством выделения текста:

    QLabel *pLabelEmail = new QLabel(QString("Email: primer<собака>gmail.com"));
    pLabelEmail->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard);

В Visual Studio и Qt Creator контекстное меню pLabelEmail на английском языке (рис 1.).

Вопрос: как сделать это меню на русском? Кстати в Qt Designer это меню на русском (рис. 2).


Название: Re: Контекстное меню QLabel
Отправлено: _OLEGator_ от Декабрь 14, 2011, 14:20
Изучить интернационализацию приложений и использовать перевод на русский из %QTDIR%\translations


Название: Re: Контекстное меню QLabel
Отправлено: GreatSnake от Декабрь 14, 2011, 14:22
Нужно подгрузить Qt-ишные трансляции. См. здесь (http://www.prog.org.ru/topic_6389_0.html).


Название: Re: Контекстное меню QLabel
Отправлено: Alexander_57 от Декабрь 14, 2011, 15:08
_OLEGator_ и GreatSnake большое спасибо за оперативную помощь.

Для тех, кто столкнётся с такой же проблемой, вот как я сделал:
1. В исходниках Qt нашёл файл qt_ru.qm и закинул в папку со своей программой.
2. В коде прописал следующее:

QTranslator *pTranslator = new QTranslator(this);
if (pTranslator->load("qt_ru.qm", "."))
   QCoreApplication::installTranslator(pTranslator);


Название: Re: Контекстное меню QLabel
Отправлено: LisandreL от Декабрь 14, 2011, 15:35
Можно qt_ru.qm в ресурсы зашить, если не планируете редактирование отдельно от исполняемого файла.


Название: Re: Контекстное меню QLabel
Отправлено: Alexander_57 от Декабрь 15, 2011, 07:27
Спасибо LisandreL. Действительно, для меня это наиболее выгодный вариант.
Вот как я сделал в этом случае:
1. В исходниках Qt нашёл файл qt_ru.qm и закинул в папку "Resources" (Visual Studio).
2. В файле ресурсов .qrc прописал следующее:

<RCC>
    <qresource prefix="/">
   <file>Resources/qt_ru.qm</file>
    </qresource>
</RCC>

3. В коде прописал следующее:

QTranslator *pTranslator = new QTranslator(this);
if (pTranslator->load(":/Resources/qt_ru.qm"))
   QCoreApplication::installTranslator(pTranslator);


Название: Re: Контекстное меню QLabel
Отправлено: kambala от Декабрь 15, 2011, 11:30
2. В файле ресурсов .qrc прописал следующее:
а зачем писать руками если есть удобный редактор ресурсов?