Russian Qt Forum

Qt => Вопросы новичков => Тема начата: billy4685 от Март 27, 2020, 15:43



Название: Почему когда окно теряет фокус, в QProgressBar меняется цвет полосы процентов?
Отправлено: billy4685 от Март 27, 2020, 15:43
Здравствуйте, господа форумчане.

Недавно заметил, что у меня в приложении, полоса процентов в QProgressBar меняет
свой цвет, когда окно теряет фокус (стает неактивным). В активном окне данная полоса
процентов синяя, а в неактивном окне - белая. Для приложения использую стиль "Fusion".
Заметил что при стиле "WindowsXP" ее цвет постоянно зеленый (ниже прикреплю рисунок).

Можно ли как-то добиться, чтобы при стиле "Fusion", цвет полосы процентов при активнем
и неактивном окне был синим? Или же нужно менять стиль для QProgressBar?


Название: Re: Почему когда окно теряет фокус, в QProgressBar меняется цвет полосы процентов?
Отправлено: tux от Март 27, 2020, 15:49
А почему это должно быть по-другому? В теме активный/неактивный цвет виджета вполне могут быть (и должны) быть разными.


Название: Re: Почему когда окно теряет фокус, в QProgressBar меняется цвет полосы процентов?
Отправлено: billy4685 от Март 27, 2020, 16:47
А почему это должно быть по-другому? В теме активный/неактивный цвет виджета вполне могут быть (и должны) быть разными.
Да я это понимаю, просто на белом фоне почти белая полоса процентов не очень хорошо выглядит. Хотелось бы ее либо синей сделать,
ну или другим цветом при неактивном окне. Ну походу нужно это наверное менять в стилях самого QProgressBar.


Название: Re: Почему когда окно теряет фокус, в QProgressBar меняется цвет полосы процентов?
Отправлено: tux от Март 27, 2020, 19:44
Ну так и меняйте. Хоть системным стилем, хоть стилем самого прогрессбара. Общего решения я там и не нашёл в подобном случае. Там, правда, был стиль в QTextEdit, но принцип тот же самый.
P.S. есть ещё обходной спопоб: описываете 100500 стилей в ресурсах своего приложения, а меню просто даёте пользователю выбрать тот, который ему нравится.


Название: Re: Почему когда окно теряет фокус, в QProgressBar меняется цвет полосы процентов?
Отправлено: billy4685 от Март 30, 2020, 10:08
Ну так и меняйте. Хоть системным стилем, хоть стилем самого прогрессбара. Общего решения я там и не нашёл в подобном случае. Там, правда, был стиль в QTextEdit, но принцип тот же самый.
P.S. есть ещё обходной спопоб: описываете 100500 стилей в ресурсах своего приложения, а меню просто даёте пользователю выбрать тот, который ему нравится.
Ясно. будем значит менять стиль.


Название: Re: Почему когда окно теряет фокус, в QProgressBar меняется цвет полосы процентов?
Отправлено: Авварон от Март 30, 2020, 11:16
Можно ли как-то добиться, чтобы при стиле "Fusion", цвет полосы процентов при активнем
и неактивном окне был синим? Или же нужно менять стиль для QProgressBar?

Стиль менять не нужно, фьюжн (по идее) целиком настраивается палитрой.
Посмотрите Theme.h/Theme.cpp в составе QtCrestor, там есть код который устанавливает цвета палитры на основе конфига, может найдете, какая комбинация отвечает за цвет прогрессбар неактивного.
Также могу предложить глянуть сорцы фьюжна и посмотреть как он рисует прогрессбар.