Користувальницькькі налаштування

Налаштування сайту


qt

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Наступна ревізія
Попередня ревізія
qt [2016/02/10 09:20]
wombat Интернационализация
qt [2016/03/08 20:10] (поточний)
wombat Сборка приложений под Windows
Рядок 1: Рядок 1:
 +====== Qt ======
 +
 +====== Локализация ======
 +
 +===== Поддержка переводов в программе =====
 +
 +Согласно [[http://​doc.qt.io/​qt-5/​internationalization.html | документации Qt]], поддержка локализованного (а точнее - "​интернационализованного"​ -- т.н. "​i18n"​) интерфейса в программе включается следующим образом:​
 +
 +<code c++>
 +int main(int argc, char *argv[])
 +{
 +    QApplication app(argc, argv);
 +
 +    QTranslator qtTranslator;​
 +    qtTranslator.load("​qt_"​ + QLocale::​system().name(),​
 +            QLibraryInfo::​location(QLibraryInfo::​TranslationsPath));​
 +    app.installTranslator(&​qtTranslator);​
 +
 +    QTranslator myappTranslator;​
 +    myappTranslator.load("​myapp_"​ + QLocale::​system().name());​
 +    app.installTranslator(&​myappTranslator);​
 +
 +    ...
 +    return app.exec();
 +}
 +</​code>​
 +
 +Такой код загружает перевод,​ соответствующй системным настройкам языка. Вместо этого можно в явном виде загрузить нужный перевод:​
 +
 +<code c++>
 +    myappTranslator.load("​myapp_uk_UA"​);​
 +</​code>​
 +
 +При этом необходимо,​ чтобы существовал соответствующий файл перевода "''​myapp_uk.qm''",​ которые генерируются из исходных файлов перевода "''​myapp_uk.ts''"​.
 +
 +===== Обновление и компиляция переводов =====
 +
 +==== Средствами Qt ====
 +
 +Для того, чтобы файлы переводов можно было обновлять и компилировать,​ их необходимо перечислить в проектном файле Qt (например,​ ''​myapp.pro''​)((http://​doc.qt.io/​qt-5/​linguist-programmers.html)):​
 +<​code>​
 +TRANSLATIONS = myapp_uk.ts \
 +               ​myapp_ru.ts \
 +               ​myapp_en.ts
 +</​code>​
 +
 +Тогда можно создать или обновить файлы переводов на основании подлежащих переводу строк, содержащихся в исходных файлах программы,​ перечисленных в разделах ''​SOURCES''​ и ''​HEADERS''​ этого же проектного файла:
 +
 +  lupdate myapp.pro
 +
 +Или напрямую передать команде ''​lupdate''​ список исходных файлов и имя выходного ''​ts''​-файла:​
 +
 +  lupdate *.cpp *.h *.ui -ts myapp_uk.ts
 +
 +После чего -- скомпилировать из ''​ts''​-файлов перевода ''​qm''​-файлы,​ подходящие для загрузки нашей программой во время запуска:​
 +
 +  lrelease myapp.pro
 +
 +или
 +
 +  lrelease myapp_*.ts
 +
 +
 +==== Средствами CMake ====
 +
 +Чтобы файлы переводов автоматически обновлялись и компилировались при каждой сборке программы,​ можно в файл CMakeLists.txt внести такие правки:​
 +
 +<file cmake CMakeLists.txt>​
 +find_package(Qt5LinguistTools)
 +SET(Translation_files
 +  spectrophot_uk.ts
 +  spectrophot_ru.ts
 +)
 +QT5_CREATE_TRANSLATION(TranslationSrcs ${CMAKE_CURRENT_SOURCE_DIR} ${Translation_files})
 +...
 +ADD_EXECUTABLE(myapp ${Srcs} ${UISrcs} ${TranslationSrcs})
 +</​file>​
 +
 +====== Установка в Windows ======
 +
 +Чтобы установить Qt в ОС Windows, можно скачать с официального сайта [[http://​download.qt.io/​archive/​qt/​5.5/​5.5.1/​qt-opensource-windows-x86-mingw492-5.5.1.exe | установщик]] (1ГБ), включающий в себя также и MinGW. Установка очень проста -- достаточно запустить скачанный файл установщика. Однако,​ в установленном виде Qt может занимать много места на диске - порядка нескольких гигабайт.
 +
 +
 +====== Сборка приложений под Windows ======
 +
 +
 +===== Динамическая компоновка =====
 +
 +Собрать исполнимый файл собственной программы можно в QtCreator, который идёт в комплекте установщика Qt, скачанного ранее. Но если он скомпанован с библиотеками Qt или какими-то другими динамически,​ эти библиотеки должны сопровождать исполнимый файл, чтобы он мог запускаться.
 +
 +===== Статическая компоновка =====
 +
 +
 +http://​doc.qt.io/​qt-5/​windows-deployment.html#​creating-the-application-package
 +
 +http://​doc.qt.io/​qt-5/​qmake-project-files.html#​general-configuration
 +
 +FIXME
  
qt.1455096038.txt.bz2 · В останнє змінено: 2016/02/10 09:20 by wombat