crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V  < 1 2 3 4 >  
Ответить в данную темуНачать новую тему
> [Решено] Стиль skulpture
SABROG
  опции профиля:
сообщение 24.3.2009, 0:27
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Я разобрался во всем. Можете меня поздравить, кубики сложились воедино. :dance2:



Дело в том, что в папке со скульптором идет 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  


к стати, при таком способе:
Цитата(SABROG @ 24.3.2009, 3:27) *
designer -style Skulpture
приложением не подхватывается палитра стиля, т.к. ее надо явно задавать:
qApp->setPalette(QApplication::style()->standardPalette());
я сначало думал, что я тупой, но Асистент, Лингвист и т.п. также используют палитру системы. Проверял на "Пластике" и "ЧистомВзгляде"

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  


Цитата(SABROG @ 24.3.2009, 0:27) *
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  


Цитата(AD @ 24.3.2009, 12:07) *
Такой вопрос, а можно ли эту строчку как-нибудь включить так, чтобы пользователь при нажатии на exe-шник вызывал уже с этим стилем?
ярлычек ему сделай, а всвойствах запиши эту командную строку.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 24.3.2009, 9:25
Сообщение #17


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(Litkevich Yuriy @ 24.3.2009, 3:37) *
а когда в коде явно указал, то прога аварийно завершается.


Она обычно аварийно завершается, когда используются длл'ки из директории Qt, т.е. если не копируешь их в папку к exe'шнику твоему. Но вполне возможно, что и несовместимость версий/сборки/платформы. У меня из программы нормально запускается:

qDebug() << a.setStyle("Skulpture");

Цитата
"Skulpture"
"Windows"
"Motif"
"CDE"
"Plastique"
"Cleanlooks"
SkulptureStyle(0x3e9a80, name = "skulpture")


Да, с палитрой я заметил. Правда похоже дизайнер как-то выкручивается сам в этой ситуации, т.к. в нем цвета нормальные.
Цитата(AD @ 24.3.2009, 9:07) *
Такой вопрос, а можно ли эту строчку как-нибудь включить так, чтобы пользователь при нажатии на exe-шник вызывал уже с этим стилем?


Для этого надо создать ярлык на программу, а в ярлыке уже передавать параметр стиля. Или написать программу таким образом, чтобы запоминала какой стиль был выбран в прошлый раз.
Цитата(Litkevich Yuriy @ 24.3.2009, 2:59) *
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 ... ?
---
А в винде нельзя вручную создать папку, где содержится точка :lol:

Ага, ищет он файл для 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  


Цитата(SABROG @ 24.3.2009, 12:25) *
- качаем исходники Skulpture'a
откуда? :)

Цитата(SABROG @ 24.3.2009, 12:25) *
Правда похоже дизайнер как-то выкручивается сам в этой ситуации, т.к. в нем цвета нормальные.
у меня нет, (4.3.5, 4.5.0) в 4.4.3 я подправил исходник

Цитата(SABROG @ 24.3.2009, 12:25) *
Волна, я так понимаю, это HOME директория? И обязательна ли папка .config ... ?

Пример на виндах, не я делал:
Цитата
E:\Documents and Settings\Yura\.assistant\


Цитата(SABROG @ 24.3.2009, 12:25) *
А в винде нельзя вручную создать папку, где содержится точка
, что значит в ручную? я в тоталкомандере делаю.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
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  


Цитата(Litkevich Yuriy @ 24.3.2009, 9:44) *
, что значит в ручную? я в тоталкомандере делаю.

А вот обычные средства винды этого не позволяют. Помню прикалывался как-то над чуваком, файлик здоровый создавал через консоль с досовской кодировкой. Так его винда вообще удалять отказывалась :)

Вроде бы скопировал в 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/

Народ, я засветился :ph34r: тут http://kdepepo.wordpress.com/

Кстати, забыл сказать, что возможно придется изменить файлик src/CMakeLists.txt и убрать из него "LIBRARY". В общем надо систематизировать знания в отдельную статью.

Сообщение отредактировал SABROG - 24.3.2009, 10:17
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

4 страниц V  < 1 2 3 4 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 15:50