[Решено] Стиль skulpture |
Здравствуйте, гость ( Вход | Регистрация )
[Решено] Стиль skulpture |
SABROG |
23.3.2009, 15:08
Сообщение
#1
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Хочу такую красавицу внедрить в свое приложение:
Тема называется Skulpture. Но проблема в том, что она доступна только в KDE, хотя вроде бы и создана для Qt. Может кто-нибудь знает как её использовать под виндой? Опаньки, кажись есть еспехи. Цитата C:\SABROG\skulpture-0.2.2.5>cmake -G "MinGW Makefiles"
-- Check for working C compiler: C:/MinGW/bin/gcc.exe -- Check for working C compiler: C:/MinGW/bin/gcc.exe -- works -- Check size of void* -- Check size of void* - done -- Check for working CXX compiler: C:/MinGW/bin/g++.exe -- Check for working CXX compiler: C:/MinGW/bin/g++.exe -- works -- Looking for Q_WS_X11 -- Looking for Q_WS_X11 - not found. -- Looking for Q_WS_WIN -- Looking for Q_WS_WIN - found -- Looking for Q_WS_QWS -- Looking for Q_WS_QWS - not found. -- Looking for Q_WS_MAC -- Looking for Q_WS_MAC - not found. -- Found Qt-Version 4.5.0 WARNING: *** KDE4 not found, building a Qt-only version of Skulpture *** -- Configuring done -- Generating done -- Build files have been written to: C:/SABROG/skulpture-0.2.2.5 C:\SABROG\skulpture-0.2.2.5>mingw32-make [ 33%] Generating skulpture_p.moc [ 66%] Generating skulpture.moc Scanning dependencies of target skulpture [100%] Building CXX object src/CMakeFiles/skulpture.dir/skulpture.obj C:\SABROG\skulpture-0.2.2.5\src\skulpture.cpp: In function `QRect progressBarCon tentsRect(const QStyleOptionProgressBarV2*, bool)': C:\SABROG\skulpture-0.2.2.5\src\skulpture.cpp:6642: warning: converting to `int' from `double' C:\SABROG\skulpture-0.2.2.5\src\skulpture.cpp:6654: warning: converting to `int' from `double' C:\SABROG\skulpture-0.2.2.5\src\skulpture.cpp: In function `void paintProgressBa rContents(QPainter*, const QStyleOptionProgressBarV2*, const QWidget*, const QSt yle*)': C:\SABROG\skulpture-0.2.2.5\src\skulpture.cpp:6843: warning: passing `double' fo r converting 2 of `QPoint::QPoint(int, int)' Linking CXX shared library libskulpture.dll Creating library file: libskulpture.dll.a [100%] Built target skulpture Сообщение отредактировал SABROG - 24.3.2009, 0:36 |
|
|
SABROG |
23.3.2009, 22:18
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Кажется есть продвижение. Решил для теста собрать программу в отладочном режиме. Не знаю почему, но скульптура собирается только в debug режиме и на это никак нельзя повлиять через CMAKE. Хотя если честно, то я вроде бы вижу везде надпись release. Как бы там нибыло я получил следующее:
Пойду теперь собирать последний снапшот, может чего поменяется... --- Собрал, изменений нет никаких. Зато на ум пришла плохая мысль о том как легко подсунуть вирус вместо плагина и он будет запускаться с каждой программой написанной на Qt... Похоже причина кроется в том, что один и тот же модуль загружается 2 раза: http://www.qtsoftware.com/developer/task-t...y&id=197601 Думаю чего делать дальше... --- В общем до меня дошло, что в PATH прописан путь к .dllкам Qt, но проблема в том, что ни в папке с exe ни с плагином этих .dll небыло, поэтому каждый из модулей пытался загрузить свою копию вместо того, чтобы .exe загрузило все Qtшные dll'ки и предоставила возможность пользоваться ими - плагину. Теперь видимых ошибок не наблюдается и среди доступных стилей есть скульптура: Цитата "Skulpture" "Windows" "Motif" "CDE" "Plastique" "Cleanlooks" Но, к сожалению метод QStyle *skulpture = QStyleFactory::create(QLatin1String("Skulpture")); возвращает нулевой указатель. Думаю дальше... --- Я в шоке. Всего-лишь одну строку изменил в исходниках скульптора и теперь программа вообще не добавляет в список фабрики стилей этот стиль. Причем изменил все обратно и все-равно не выводит. Блин, переменные окружения сами по себе слетают. Теперь такую хрень получаю: Цитата "Cannot load library D:/work/qt-win-opensource-src-4.5.0/plugins/styles/libskulpture.dll: ═х эрщфхэ єърчрээ√щ ьюфєы№." could not load Форменное издевательство --- Снова прошелся через dependency walker. Народ вы не поверите. Плагин требует релизные QtCore4.dll и QtGui4.dll, при это сам отказывается грузится с релизной программой выдавая ошибку о различных потоках, ибо там уже идет микс дебага с релизом. Внимание, вопрос! Зачем плагин прикидывается дебажным, при этом являясь релизным? Сообщение отредактировал SABROG - 23.3.2009, 23:48 |
|
|
Текстовая версия | Сейчас: 30.12.2024, 19:11 |