|
м |
(2 промежуточные версии не показаны) |
Строка 1: |
Строка 1: |
- | == Как собрать и использовать стиль Skulpture в Windows? (MinGW) == | + | == Как добавить уголок изменения размера окна для выпадающего списка QComboBox ? == |
| | | |
- | [[Изображение:Skulpture.jpg]] | + | Чтобы появился уголок для изменения размеров выпадающего списка у QComboBox<br /> |
| + | [[Изображение:Qsizegripml5.gif]] |
| | | |
- | Для пользователей KDE существует приятный стиль-плагин - [http://skulpture.maxiom.de Skulpture]
| + | можно использовать следующий метод: |
- | Но я нигде не нашел информации о том как его собрать для Windows, хотя он и написан на Qt.
| + | |
- | Решил попытать счастье. Скачал последний snapshot с сайта. Собирать будем через MinGW.
| + | |
- | Где-то день ничего не получалось, но в итоге все свелось к следующим действиям.
| + | |
| | | |
- | Скачиваем исходники Skulpture с сайта. Распаковываем их в любую папку. Но, чтобы небыло возможных проблем
| + | == Код == |
- | старайтесь выбрать папку таким образом, чтобы в ней небыло русских букв или пробелов.
| + | <source lang=cpp-qt> |
| + | ... |
| + | ui.comboBox->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); |
| + | ui.comboBox->view()->setCornerWidget(new QSizeGrip(ui.comboBox)); |
| + | ... |
| + | </source> |
| + | ''Замечание:'' Если мы не добавим линейку прокрутки (ScrollBar), то мы не увидим добавленный уголок! |
| | | |
- | Я надеюсь, что большинство людей работающих с Qt знают, что означает правильно подготовить переменные окружения,
| |
- | прежде чем что-либо компилировать.
| |
- |
| |
- | Для этих целей я использую заранее подготовленный .bat файл такого содержания:
| |
- |
| |
- | {{code|code=
| |
- | @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, если их у вас нет. Также вам понадобится
| |
- | скачать и установить систему сборки CMAKE, если вы еще ей не пользуетесь.
| |
- |
| |
- | Я заметил, что на разных компьютерах Skulpture может не собираться. Вероятно
| |
- | это зависит от переменных окружения. Поэтому следующие действия нужны, только
| |
- | если возникли проблемы со сборкой.
| |
- | Заходим в подпапку src папки с исходниками Skulpture. Необходимо
| |
- | отредактировать файл CMakeLists.txt и удалить слово "LIBRARY" в этой строке:
| |
- | {{code|code=
| |
- | "install (TARGETS skulpture LIBRARY DESTINATION ${QT_PLUGINS_DIR}/styles)"
| |
- | }}
| |
- | Теперь возвращаемся в папку где лежит файл install.sh. Вбиваем следующие команды:
| |
- | {{code|code=
| |
- | cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
| |
- | mingw32-make
| |
- | }}
| |
- |
| |
- | Когда все соберется, копируем из папки src файл libskulpture.dll в папку
| |
- | %QTDIR%/plugins/styles (папку styles надо создать вручную).
| |
- |
| |
- | Если вы не желаете использовать этот стиль как общий плагин, то можете
| |
- | просто создать папку styles в папке со своей программой (где лежит исполнимый .exe файл).
| |
- | Он будет загружаться автоматически. Поэтому достаточно запустить вашу программу
| |
- | указав в качестве параметра ключ: -style Skulpture
| |
- | Или непосредственно в программе прописать:
| |
- | {{code|qt|code=
| |
- | 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)
| |
- | и прописать в нем строки:
| |
- | {{code|code=
| |
- | [%General]
| |
- | StyleSheetFileName=Skulpture.qss
| |
- | }}
| |
- |
| |
- | При этом файл Skulpture.qss будет искаться в папке с вашей программой (.exe файлом).
| |
- | Пример .qss файла можно взять в папке с исходниками Skulpture.
| |
| | | |
| == См. также == | | == См. также == |