Изменение размера у выпадающего списка QComboBox

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

(Различия между версиями)
Перейти к: навигация, поиск
 
(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.
 
== См. также ==
== См. также ==

Текущая версия на 06:29, 11 апреля 2010

[править] Как добавить уголок изменения размера окна для выпадающего списка QComboBox ?

Чтобы появился уголок для изменения размеров выпадающего списка у QComboBox
Изображение:Qsizegripml5.gif

можно использовать следующий метод:

[править] Код

...
    ui.comboBox->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
    ui.comboBox->view()->setCornerWidget(new QSizeGrip(ui.comboBox));
...

Замечание: Если мы не добавим линейку прокрутки (ScrollBar), то мы не увидим добавленный уголок!


[править] См. также