Как собрать и использовать стиль Skulpture в Windows (MinGW)?

Материал из Wiki.crossplatform.ru

(Различия между версиями)
Перейти к: навигация, поиск
(См. также)
(поправил тэг коде)
Строка 21: Строка 21:
Я надеюсь, что большинство людей работающих с Qt знают, что означает правильно подготовить переменные окружения,
Я надеюсь, что большинство людей работающих с Qt знают, что означает правильно подготовить переменные окружения,
прежде чем что-либо компилировать. Для этих целей я использую заранее подготовленный .bat файл такого содержания:
прежде чем что-либо компилировать. Для этих целей я использую заранее подготовленный .bat файл такого содержания:
-
{{code|code=
+
<source lang="bash">
@echo off
@echo off
set CMAKE=c:\cmake
set CMAKE=c:\cmake
Строка 33: Строка 33:
set QT_DEBUG_PLUGINS=1
set QT_DEBUG_PLUGINS=1
cmd
cmd
-
}}
+
<\source>
Хочу обратить внимание на то, что пути вы должны исправить на свои.  
Хочу обратить внимание на то, что пути вы должны исправить на свои.  
Строка 43: Строка 43:
Заходим в подпапку src папки с исходниками Skulpture. Необходимо
Заходим в подпапку src папки с исходниками Skulpture. Необходимо
отредактировать файл CMakeLists.txt и удалить слово "LIBRARY" в этой строке:
отредактировать файл CMakeLists.txt и удалить слово "LIBRARY" в этой строке:
-
{{code|code=
+
<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. Вбиваем следующие команды:
-
{{code|code=
+
<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 в папку
Строка 62: Строка 62:
указав в качестве параметра ключ: -style Skulpture
указав в качестве параметра ключ: -style Skulpture
Или непосредственно в программе прописать:
Или непосредственно в программе прописать:
-
{{code|qt|code=
+
<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. В таких случаях и
Строка 79: Строка 79:
%APPDATA% (C:\Documents and Settings\ТЕКУЩЕЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ\Application Data)
%APPDATA% (C:\Documents and Settings\ТЕКУЩЕЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ\Application Data)
и прописать в нем строки:
и прописать в нем строки:
-
{{code|code=
+
<source lang="bash">
[%General]
[%General]
StyleSheetFileName=Skulpture.qss
StyleSheetFileName=Skulpture.qss
-
}}
+
<\source>
При этом файл Skulpture.qss будет искаться в папке с вашей программой (.exe файлом).
При этом файл Skulpture.qss будет искаться в папке с вашей программой (.exe файлом).

Версия 15:41, 18 октября 2009

Стиль Skulpture в Windows (MinGW)

Для пользователей KDE существует приятный стиль-плагин - Skulpture

Изображение:Skulpture.jpg

Но я нигде не нашел информации о том как его собрать для 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
<\source>
 
Хочу обратить внимание на то, что пути вы должны исправить на свои. 
И вам не понадобится vim и gdb, если их у вас нет. 
 
Я заметил, что на разных компьютерах Skulpture может не собираться. Вероятно
это зависит от переменных окружения. Поэтому следующие действия нужны, только
если возникли проблемы со сборкой. 
Заходим в подпапку src папки с исходниками Skulpture. Необходимо
отредактировать файл CMakeLists.txt и удалить слово "LIBRARY" в этой строке:
<source lang="bash">
"install (TARGETS skulpture LIBRARY DESTINATION ${QT_PLUGINS_DIR}/styles)"
<\source>
 
== Сборка==
Теперь возвращаемся в папку где лежит файл install.sh. Вбиваем следующие команды:
<source lang="bash">
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
mingw32-make
<\source>
 
Когда все соберется, копируем из папки src файл libskulpture.dll в папку
%QTDIR%/plugins/styles (папку styles надо создать вручную).
 
Если вы не желаете использовать этот стиль как общий плагин, то можете
просто создать папку styles в папке со своей программой (где лежит исполнимый .exe файл).
Он будет загружаться автоматически. Поэтому достаточно запустить вашу программу 
указав в качестве параметра ключ: -style Skulpture
Или непосредственно в программе прописать:
<source lang="cpp-qt">
QApplication::setStyle("Skulpture");
qApp->setPalette(QApplication::style()->standardPalette());
<\source>
Существует проблема при запуске программ с плагином, когда файлы ядра 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)
и прописать в нем строки:
<source lang="bash">
[%General]
StyleSheetFileName=Skulpture.qss
<\source>
 
При этом файл Skulpture.qss будет искаться в папке с вашей программой (.exe файлом).
Пример .qss файла можно взять в папке с исходниками Skulpture.
 
== См. также ==
* [[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]]