[Решено] Стиль skulpture |
Здравствуйте, гость ( Вход | Регистрация )
[Решено] Стиль skulpture |
SABROG |
24.3.2009, 0:27
Сообщение
#11
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Я разобрался во всем. Можете меня поздравить, кубики сложились воедино.
Дело в том, что в папке со скульптором идет install.sh скрипт. Установка-компиляция идет через него под линуксом. Т.к. у нас MinGW, то запуск этого скрипта даже в MSYS не помогает, находит он студию гадина и все. В итоге я был вынужден вручную прописывать CMAKE'у, что мне надо использовать MinGW. Затем я начал рыть исходники Qt, чтобы понять почему он считает релизную .dll'ку - дебажной. Оказалось на это влияет спец-флаг для компилятора. И если этого флага нет, то как не собирай, а получишь псевдодебажный плагин. В общем начал рыть где-же скульптор влияет на флаг и нашел место в install.sh. Все свелось к таким командам: Цитата cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release mingw32-make Копируем файл из src/libskulpture.dll в $QTDIR/plugins/styles (папку styles надо создавать вручную). Затем берем любую релизную программу и вызываем её с ключем -style. Так например: Цитата $QTDIR/bin/designer -style Skulpture И наслаждаемся Собственно в этом и вся прелесть плагинов, что не требуется перекомпиляция. Я себе сегодня мозг выносил целый день этой штукой, надеюсь мои старания небыли напрасными. Пользуйтесь Совсем забыл. Вот dll'ка скомпиленная в WinXP: http://filebeam.com/ce3a8fbda945c6e5566a4b41c4c90d24 (Qt 4.5 shared release) Для теста создаем в папке с любой программной написаной на Qt (там где релизный .exe файл) подпапку "styles" и пихаем её туда. Саму программу как обычно вызываем с ключем "-style Skulpture" Сообщение отредактировал SABROG - 24.3.2009, 0:51 |
|
|
Litkevich Yuriy |
24.3.2009, 2:59
Сообщение
#12
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
к стати, при таком способе:
designer -style Skulpture приложением не подхватывается палитра стиля, т.к. ее надо явно задавать: я сначало думал, что я тупой, но Асистент, Лингвист и т.п. также используют палитру системы. Проверял на "Пластике" и "ЧистомВзгляде"SABROG, а не мог бы ты инструкцию пошаговую написть, лучше б, конечно, в вики. |
|
|
Litkevich Yuriy |
24.3.2009, 3:37
Сообщение
#13
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
у меня твоя dll'ка сходу не заработала, хотя кэш плагинов почистил на всякий случай.
а когда в коде явно указал, то прога аварийно завершается. |
|
|
log1c |
24.3.2009, 8:45
Сообщение
#14
|
Студент Группа: Участник Сообщений: 29 Регистрация: 29.12.2008 Пользователь №: 472 Спасибо сказали: 1 раз(а) Репутация: 0 |
Цитата $QTDIR/bin/designer -style Skulpture Запустилось, прикольный стиль Цитата а когда в коде явно указал, то прога аварийно завершается. +1, может конечно я что-то не так сделал Сообщение отредактировал log1c - 24.3.2009, 9:01 |
|
|
AD |
24.3.2009, 9:07
Сообщение
#15
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
http://filebeam.com/ce3a8fbda945c6e5566a4b41c4c90d24 (Qt 4.5 shared release) Для теста создаем в папке с любой программной написаной на Qt (там где релизный .exe файл) подпапку "styles" и пихаем её туда. Саму программу как обычно вызываем с ключем "-style Skulpture" Такой вопрос, а можно ли эту строчку как-нибудь включить так, чтобы пользователь при нажатии на exe-шник вызывал уже с этим стилем? |
|
|
Litkevich Yuriy |
24.3.2009, 9:15
Сообщение
#16
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
SABROG |
24.3.2009, 9:25
Сообщение
#17
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
а когда в коде явно указал, то прога аварийно завершается. Она обычно аварийно завершается, когда используются длл'ки из директории Qt, т.е. если не копируешь их в папку к exe'шнику твоему. Но вполне возможно, что и несовместимость версий/сборки/платформы. У меня из программы нормально запускается:
Цитата "Skulpture" "Windows" "Motif" "CDE" "Plastique" "Cleanlooks" SkulptureStyle(0x3e9a80, name = "skulpture") Да, с палитрой я заметил. Правда похоже дизайнер как-то выкручивается сам в этой ситуации, т.к. в нем цвета нормальные. Такой вопрос, а можно ли эту строчку как-нибудь включить так, чтобы пользователь при нажатии на exe-шник вызывал уже с этим стилем? Для этого надо создать ярлык на программу, а в ярлыке уже передавать параметр стиля. Или написать программу таким образом, чтобы запоминала какой стиль был выбран в прошлый раз. SABROG, а не мог бы ты инструкцию пошаговую написть, лучше б, конечно, в вики. Да инструкция простая: - качаем исходники Skulpture'a (тык) - распаковываем - качаем CMAKE, если до сих пор не стоит - запускаем консоль, где подготовлены переменные окружения указывающие на то где лежит Qt, CMAKE, MinGW - заходим в папку куда распаковали Skulpture - запускаем эти 2 команды: Цитата cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release mingw32-make - заходим в подпапку src и копируем оттуда libskulpture.dll в папку $QTDIR/plugins/styles (папку styles создавать вручную), или в подпапку styles своей программы, где лежит exe'шник. - дальше используем точно также как любой другой стиль - если возникают косяки с плагином, то выставляем переменную окружения QT_DEBUG_PLUGINS=1 и включаем консоль в программе. Смотрим, что туда пишет. Если руки до Вики дойдут, то напишу. Кстати плагин поддерживает разные цветовые схемы из .ini файлов, но я пока не разбирался как преобразовать такой путь к виндовому стилю: ~/.config/SkulptureStyle.ini Волна, я так понимаю, это HOME директория? И обязательна ли папка .config ... ? --- А в винде нельзя вручную создать папку, где содержится точка Ага, ищет он файл для QSettings в QSettings::UserScope. В HOME папке. Вроде копернул 2 файла, пока безрезультатно. Сообщение отредактировал Litkevich Yuriy - 24.3.2009, 10:18 |
|
|
Litkevich Yuriy |
24.3.2009, 9:44
Сообщение
#18
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
- качаем исходники Skulpture'a откуда? Правда похоже дизайнер как-то выкручивается сам в этой ситуации, т.к. в нем цвета нормальные. у меня нет, (4.3.5, 4.5.0) в 4.4.3 я подправил исходникВолна, я так понимаю, это HOME директория? И обязательна ли папка .config ... ? Пример на виндах, не я делал: Цитата E:\Documents and Settings\Yura\.assistant\ А в винде нельзя вручную создать папку, где содержится точка , что значит в ручную? я в тоталкомандере делаю.
|
|
|
Kagami |
24.3.2009, 9:47
Сообщение
#19
|
Старейший участник Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9 |
Вот кусок из ассистанта
Цитата QSettings stores settings for an application in up to four locations, depending on whether the settings are user-specific or system-wide and whether the the settings are application-specific or organization-wide. For simplicity, we're assuming the organization is called MySoft and the application is called Star Runner. If the file format is IniFormat, the following files are used on Unix and Mac OS X:
$HOME/.config/MySoft/Star Runner.ini (Qt for Embedded Linux: $HOME/Settings/MySoft/Star Runner.ini) $HOME/.config/MySoft.ini (Qt for Embedded Linux: $HOME/Settings/MySoft.ini) /etc/xdg/MySoft/Star Runner.ini /etc/xdg/MySoft.ini On Windows, the following files are used: %APPDATA%\MySoft\Star Runner.ini %APPDATA%\MySoft.ini %COMMON_APPDATA%\MySoft\Star Runner.ini %COMMON_APPDATA%\MySoft.ini The %APPDATA% path is usually C:\Documents and Settings\User Name\Application Data; |
|
|
SABROG |
24.3.2009, 10:01
Сообщение
#20
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
, что значит в ручную? я в тоталкомандере делаю. А вот обычные средства винды этого не позволяют. Помню прикалывался как-то над чуваком, файлик здоровый создавал через консоль с досовской кодировкой. Так его винда вообще удалять отказывалась Вроде бы скопировал в C:\Documents and Settings\User Name\Application Data, но пока безрезультатно. --- Всё, разобрался. Файл SkulptureStyle.ini копируем в %APPDATA%. Открываем его в текстовом редакторе и прописываем: Цитата [%General] StyleSheetFileName=Skulpture.qss Файл Skulpture.qss из папки с исходниками Skulpture копируем в папку со своим .exe'шником. Сейчас в .qss файле изменения видны только на прогрессбаре, групбоксе и меню. Ничего экстраординарного Litkevich Yuriy, Качать отсюда: http://skulpture.maxiom.de/ Народ, я засветился тут http://kdepepo.wordpress.com/ Кстати, забыл сказать, что возможно придется изменить файлик src/CMakeLists.txt и убрать из него "LIBRARY". В общем надо систематизировать знания в отдельную статью. Сообщение отредактировал SABROG - 24.3.2009, 10:17 |
|
|
Текстовая версия | Сейчас: 21.12.2024, 18:11 |