Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Пантер от Июль 21, 2008, 07:17



Название: Определение стиля по умолчанию для всех Qt приложений под масдаем.
Отправлено: Пантер от Июль 21, 2008, 07:17
Есть ли такая опция в пользовательском окружении, которая отвечает за стиль по умолчанию для Qt прог? Хочется пластик сделать по умолчанию. :) В ассистенте что-то не нашел. Под Линем точно есть, но там есть конфигуратор, через который это все можно задать.


Название: Re: Определение стиля по умолчанию для всех Qt приложений под масдаем.
Отправлено: ритт от Июль 21, 2008, 10:04
эээ...ммм...
Цитировать
cd tools/qtconfig
qmake && make
qtconfig
стиль по умолчанию можно выбрать из списка.

вот оно куда-то что-то записывает (скорее всего, в реестр) - ковырни код - там всё будет


Название: Re: Определение стиля по умолчанию для всех Qt приложений под масдаем.
Отправлено: spirit от Июль 21, 2008, 10:09
исходя из кода QApplication::style() для винды стиль жестко зашит в коде
Код:
                style = QLatin1String("Windows");                // default styles for Windows
для иксов есть динамическое получение стиля
Код:
if(!QApplicationPrivate::styleOverride)
        QApplicationPrivate::x11_initialize_style(); // run-time search for default style
имхо, если нужно для каждого приложения задавать тип, то можно либо банкик написать который бы к вашему приложению прибавлял ключ "-style <style_name>", либо же жестко задавать в самом приложении, либо считывать из файла.


Название: Re: Определение стиля по умолчанию для всех Qt приложений под масдаем.
Отправлено: crossly от Июль 21, 2008, 10:57
а
Код:
void QApplication::setStyle ( QStyle * style )   [static]
не катит...??


Название: Re: Определение стиля по умолчанию для всех Qt приложений под масдаем.
Отправлено: spirit от Июль 21, 2008, 11:04
Цитировать
вот оно куда-то что-то записывает (скорее всего, в реестр) - ковырни код - там всё будет
сохраняется в .qmake.cache, в реестре ничего подобного не стречал.

Цитировать
а
Code:
void QApplication::setStyle ( QStyle * style )   [static]
не катит...??
тема сабжа -- это задание стиля для всех приложений кути на сколько я понял


Название: Re: Определение стиля по умолчанию для всех Qt приложений под масдаем.
Отправлено: Пантер от Июль 21, 2008, 11:20
эээ...ммм...
Цитировать
cd tools/qtconfig
qmake && make
qtconfig
стиль по умолчанию можно выбрать из списка.

вот оно куда-то что-то записывает (скорее всего, в реестр) - ковырни код - там всё будет
Упппс. Не заметил. Каюсь.
Цитировать
вот оно куда-то что-то записывает (скорее всего, в реестр) - ковырни код - там всё будет
сохраняется в .qmake.cache, в реестре ничего подобного не стречал.

Цитировать
а
Code:
void QApplication::setStyle ( QStyle * style )   [static]
не катит...??
тема сабжа -- это задание стиля для всех приложений кути на сколько я понял
Абсолютно верно. Просто хочется, чтобы все кутные проги без перекомпиляции и параметров запуска имели стиль Пластик.


Название: Re: Определение стиля по умолчанию для всех Qt приложений под масдаем.
Отправлено: Alex03 от Июль 21, 2008, 11:35
Если все ваши проги пользуют одну qt dll-ку, то такой вариант по её сборке:

configure.exe ...... -qt-style-plastique -no-style-windows -no-style-windowsxp -no-style-windowsvista -qt-style-plastique -no-style-cleanlooks -no-style-motif -no-style-cde

Судя по исходникам, в винде стиль по умолчанию устанавливается жестко, в зависимости от ОС, но во всех случаях (т.е. для всех ОС и т.д.) если стиль по умолчанию "не устанавливается" (не вкомпилён в библиотеку и нет плагина) то устанавливается первый попавшийся стиль.
Соответствующий код я приводил в соседней ветке: http://prog.org.ru/forum/index.php/topic,7476.0.html

PS сам не проверял, потому не пинайте если что...
PPS И ИМХО не правильно это, но Вам виднее. :)


Название: Re: Определение стиля по умолчанию для всех Qt приложений под масдаем.
Отправлено: Пантер от Июль 21, 2008, 11:41
Если все ваши проги пользуют одну qt dll-ку, то такой вариант по её сборке:

configure.exe ...... -qt-style-plastique -no-style-windows -no-style-windowsxp -no-style-windowsvista -qt-style-plastique -no-style-cleanlooks -no-style-motif -no-style-cde

Судя по исходникам, в винде стиль по умолчанию устанавливается жестко, в зависимости от ОС, но во всех случаях (т.е. для всех ОС и т.д.) если стиль по умолчанию "не устанавливается" (не вкомпилён в библиотеку и нет плагина) то устанавливается первый попавшийся стиль.
Соответствующий код я приводил в соседней ветке: http://prog.org.ru/forum/index.php/topic,7476.0.html

PS сам не проверял, потому не пинайте если что...
PPS И ИМХО не правильно это, но Вам виднее. :)
Не охота кутю пересобирать. Нет так нет.


Название: Re: Определение стиля по умолчанию для всех Qt приложений под масдаем.
Отправлено: ритт от Июль 21, 2008, 11:53
действительно, кутэконфиг под вендой неактуален. сохранять настройки он сохраняет, но на другие приложения предустановки не распространяются
может того...запостить саггест троллям?


Название: Re: Определение стиля по умолчанию для всех Qt приложений под масдаем.
Отправлено: spirit от Июль 21, 2008, 11:59
ага, было бы неплохо.  :)


Название: Re: Определение стиля по умолчанию для всех Qt приложений под масдаем.
Отправлено: Пантер от Июль 22, 2008, 07:37
Полностью согласен. Пусть в 4.4.1 исправят. ;)


Название: Re: Определение стиля по умолчанию для всех Qt приложений под масдаем.
Отправлено: ритт от Июль 22, 2008, 09:30
я что-то недопонимаю...вы плюсуете за то, чтобы _я_ запостил саггест, что ли?
уж кто открыл ветку, тот пусть и постит :)


Название: Re: Определение стиля по умолчанию для всех Qt приложений под масдаем.
Отправлено: Пантер от Июль 22, 2008, 10:30
Я плюсую. К сожалению с английским я как собака - немного понимаю, но сказать ничего не могу. :) Так что большая просьба к кому-нибудь запостить это Тролям.


Название: Re: Определение стиля по умолчанию для всех Qt приложений под масдаем.
Отправлено: ритт от Июль 22, 2008, 11:04
мне кажется, я знаю что ответят...
т.к. под вендой от кутэ ничего не зависит, то нет гарантии, что в системе лишь одна копия кутэ (ласт.фм, например, тягает свою копию либ). значит, централизованно определять подобные настройки нежелательно - в одной копии предустановлена тема по умолчанию винхр, а в другой - мотиф :)
и посоветуют хардкодить это в своей сборке кутэ или ключом в реестре для всех своих аппзов :)