Как собрать и использовать стиль Skulpture в Windows (MinGW)?
Материал из Wiki.crossplatform.ru
SABROG (Обсуждение | вклад) (Новая: == Как собрать и использовать стиль Skulpture в Windows? (MinGW) == Изображение:Skulpture.jpg Для пользователей KDE суще...) |
Admin (Обсуждение | вклад) (поправил тэг коде) |
||
(5 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | == | + | == Стиль '''Skulpture''' в Windows (MinGW) == |
+ | Для пользователей KDE существует приятный стиль-плагин - [http://skulpture.maxiom.de Skulpture] | ||
[[Изображение:Skulpture.jpg]] | [[Изображение:Skulpture.jpg]] | ||
- | |||
Но я нигде не нашел информации о том как его собрать для Windows, хотя он и написан на Qt. | Но я нигде не нашел информации о том как его собрать для Windows, хотя он и написан на Qt. | ||
Решил попытать счастье. Скачал последний snapshot с сайта. Собирать будем через MinGW. | Решил попытать счастье. Скачал последний snapshot с сайта. Собирать будем через MinGW. | ||
Где-то день ничего не получалось, но в итоге все свелось к следующим действиям. | Где-то день ничего не получалось, но в итоге все свелось к следующим действиям. | ||
- | |||
- | |||
- | + | == Подготовка == | |
- | + | Нам понадобятся: | |
+ | * Исходники '''Skulpture''' ([http://skulpture.maxiom.de/releases/skulpture-0.2.2.6.tar.bz2 скачать]); | ||
+ | * Система сборки '''CMake''' ([http://cmake.org/cmake/resources/software.html скачать]). | ||
- | |||
- | + | Установите '''CMake''', если её еще нет на вашей машине. | |
+ | |||
+ | Распаковываем исходники '''Skulpture''' в любую папку. Но, чтобы не было возможных проблем старайтесь выбрать папку таким образом, чтобы в ней не было русских букв или пробелов. | ||
+ | |||
+ | Я надеюсь, что большинство людей работающих с Qt знают, что означает правильно подготовить переменные окружения, | ||
+ | прежде чем что-либо компилировать. Для этих целей я использую заранее подготовленный .bat файл такого содержания: | ||
+ | <source lang="bash"> | ||
@echo off | @echo off | ||
set CMAKE=c:\cmake | set CMAKE=c:\cmake | ||
Строка 28: | Строка 33: | ||
set QT_DEBUG_PLUGINS=1 | set QT_DEBUG_PLUGINS=1 | ||
cmd | cmd | ||
- | + | </source> | |
Хочу обратить внимание на то, что пути вы должны исправить на свои. | Хочу обратить внимание на то, что пути вы должны исправить на свои. | ||
- | И вам не понадобится vim и gdb, если их у вас нет | + | И вам не понадобится vim и gdb, если их у вас нет. |
- | + | ||
Я заметил, что на разных компьютерах Skulpture может не собираться. Вероятно | Я заметил, что на разных компьютерах Skulpture может не собираться. Вероятно | ||
Строка 39: | Строка 43: | ||
Заходим в подпапку src папки с исходниками Skulpture. Необходимо | Заходим в подпапку src папки с исходниками Skulpture. Необходимо | ||
отредактировать файл CMakeLists.txt и удалить слово "LIBRARY" в этой строке: | отредактировать файл CMakeLists.txt и удалить слово "LIBRARY" в этой строке: | ||
- | + | <source lang="bash"> | |
"install (TARGETS skulpture LIBRARY DESTINATION ${QT_PLUGINS_DIR}/styles)" | "install (TARGETS skulpture LIBRARY DESTINATION ${QT_PLUGINS_DIR}/styles)" | ||
- | + | </source> | |
+ | |||
+ | == Сборка== | ||
Теперь возвращаемся в папку где лежит файл install.sh. Вбиваем следующие команды: | Теперь возвращаемся в папку где лежит файл install.sh. Вбиваем следующие команды: | ||
- | + | <source lang="bash"> | |
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release | cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release | ||
mingw32-make | mingw32-make | ||
- | + | </source> | |
Когда все соберется, копируем из папки src файл libskulpture.dll в папку | Когда все соберется, копируем из папки src файл libskulpture.dll в папку | ||
Строка 56: | Строка 62: | ||
указав в качестве параметра ключ: -style Skulpture | указав в качестве параметра ключ: -style Skulpture | ||
Или непосредственно в программе прописать: | Или непосредственно в программе прописать: | ||
- | + | <source lang="cpp-qt"> | |
QApplication::setStyle("Skulpture"); | QApplication::setStyle("Skulpture"); | ||
qApp->setPalette(QApplication::style()->standardPalette()); | qApp->setPalette(QApplication::style()->standardPalette()); | ||
- | + | </source> | |
Существует проблема при запуске программ с плагином, когда файлы ядра Qt: QtCore4.dll, QtGui4.dll | Существует проблема при запуске программ с плагином, когда файлы ядра Qt: QtCore4.dll, QtGui4.dll | ||
находятся не в папке с программой, а ищутся/беруться из переменной PATH. В таких случаях и | находятся не в папке с программой, а ищутся/беруться из переменной PATH. В таких случаях и | ||
Строка 68: | Строка 74: | ||
прежде чем осуществить очередную попытку запустить программу. | прежде чем осуществить очередную попытку запустить программу. | ||
+ | == Настройка стилей == | ||
У плагина Skulpture есть экспериментальная функция загрузки стилей из .qss файла. | У плагина Skulpture есть экспериментальная функция загрузки стилей из .qss файла. | ||
Для того, чтобы ей воспользоваться надо создать файл SkulptureStyle.ini в папке | Для того, чтобы ей воспользоваться надо создать файл SkulptureStyle.ini в папке | ||
%APPDATA% (C:\Documents and Settings\ТЕКУЩЕЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ\Application Data) | %APPDATA% (C:\Documents and Settings\ТЕКУЩЕЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ\Application Data) | ||
и прописать в нем строки: | и прописать в нем строки: | ||
- | + | <source lang="bash"> | |
[%General] | [%General] | ||
StyleSheetFileName=Skulpture.qss | StyleSheetFileName=Skulpture.qss | ||
- | + | </source> | |
При этом файл Skulpture.qss будет искаться в папке с вашей программой (.exe файлом). | При этом файл Skulpture.qss будет искаться в папке с вашей программой (.exe файлом). | ||
Строка 82: | Строка 89: | ||
== См. также == | == См. также == | ||
* [[Qt/FAQ]] | * [[Qt/FAQ]] | ||
+ | * [http://prog.org.ru/wiki/index.php?title=CMake_как_система_сборки_для_Qt_приложений CMake как система сборки для Qt приложений] | ||
+ | * [http://prog.org.ru/wiki/index.php?title=Интеграция_CMake_с_различными_IDE Интеграция CMake с различными IDE] | ||
[[Категория:Qt FAQ]] | [[Категория:Qt FAQ]] |
Текущая версия на 15:43, 18 октября 2009
Содержание |
[править] Стиль Skulpture в Windows (MinGW)
Для пользователей KDE существует приятный стиль-плагин - Skulpture
Но я нигде не нашел информации о том как его собрать для Windows, хотя он и написан на Qt. Решил попытать счастье. Скачал последний snapshot с сайта. Собирать будем через MinGW. Где-то день ничего не получалось, но в итоге все свелось к следующим действиям.
[править] Подготовка
Нам понадобятся:
Установите CMake, если её еще нет на вашей машине.
Распаковываем исходники Skulpture в любую папку. Но, чтобы не было возможных проблем старайтесь выбрать папку таким образом, чтобы в ней не было русских букв или пробелов.
Я надеюсь, что большинство людей работающих с Qt знают, что означает правильно подготовить переменные окружения, прежде чем что-либо компилировать. Для этих целей я использую заранее подготовленный .bat файл такого содержания:
@echo off set CMAKE=c:\cmake set QTDIR=c:\SABROG\qt-win-opensource-src-4.5.0 set INCLUDE= set LIB= set PATH=c:\SABROG\qt-win-opensource-src-4.5.0\bin set PATH=%PATH%;C:\MinGW\bin set PATH=%PATH%;%SystemRoot%\System32;C:\gdb\bin;C:\Vim\vim72;%CMAKE%;%CMAKE%\bin set QMAKESPEC=win32-g++ set QT_DEBUG_PLUGINS=1 cmd
Хочу обратить внимание на то, что пути вы должны исправить на свои. И вам не понадобится vim и gdb, если их у вас нет.
Я заметил, что на разных компьютерах Skulpture может не собираться. Вероятно это зависит от переменных окружения. Поэтому следующие действия нужны, только если возникли проблемы со сборкой. Заходим в подпапку src папки с исходниками Skulpture. Необходимо отредактировать файл CMakeLists.txt и удалить слово "LIBRARY" в этой строке:
"install (TARGETS skulpture LIBRARY DESTINATION ${QT_PLUGINS_DIR}/styles)"
[править] Сборка
Теперь возвращаемся в папку где лежит файл install.sh. Вбиваем следующие команды:
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release mingw32-make
Когда все соберется, копируем из папки src файл libskulpture.dll в папку %QTDIR%/plugins/styles (папку styles надо создать вручную).
Если вы не желаете использовать этот стиль как общий плагин, то можете просто создать папку styles в папке со своей программой (где лежит исполнимый .exe файл). Он будет загружаться автоматически. Поэтому достаточно запустить вашу программу указав в качестве параметра ключ: -style Skulpture Или непосредственно в программе прописать:
QApplication::setStyle("Skulpture"); qApp->setPalette(QApplication::style()->standardPalette());
Существует проблема при запуске программ с плагином, когда файлы ядра Qt: QtCore4.dll, QtGui4.dll находятся не в папке с программой, а ищутся/беруться из переменной PATH. В таких случаях и программа и плагин пытаются загрузить каждый свою копию этих .dll'ок в память, что приводит к конфликту потоков. Это можно увидеть в консоли, если выставить переменную окружения QT_DEBUG_PLUGINS=1. Стоит также помнить, что в реестре создается кэш неудачных попыток загрузки плагина, если таковые имелись. Возможно надо будет почистить ветку: HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults прежде чем осуществить очередную попытку запустить программу.
[править] Настройка стилей
У плагина Skulpture есть экспериментальная функция загрузки стилей из .qss файла. Для того, чтобы ей воспользоваться надо создать файл SkulptureStyle.ini в папке %APPDATA% (C:\Documents and Settings\ТЕКУЩЕЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ\Application Data) и прописать в нем строки:
[%General] StyleSheetFileName=Skulpture.qss
При этом файл Skulpture.qss будет искаться в папке с вашей программой (.exe файлом). Пример .qss файла можно взять в папке с исходниками Skulpture.