Название: QStyledItemDelegate и QStyleOptionProgressBar Отправлено: SABROG от Февраль 13, 2010, 03:16 У меня есть делегат, который вместо ячеек рисует прогресс, как в менеджерах закачки. Но мне ужасно не нравится стиль прогресса - кубиками (Blocks), я хочу сплошную заливку (Solid). Т.к. я использую QStyleOptionProgressBar и метод DrawControl в paint()'e, то у меня нет возможности поставить Style Sheet, т.к. виджета не существует. Менять стиль всего приложения мне не хочется. Самому что ли рисовать? Даже в винде можно выбрать 2 варианта отображения полоски. А в Qt один что ли и не самый лучший?
(http://www.essentialobjects.com/screenshots/progressbar.gif) Название: Re: QStyledItemDelegate и QStyleOptionProgressBar Отправлено: BRE от Февраль 13, 2010, 08:55 Style sheet же.
Название: Re: QStyledItemDelegate и QStyleOptionProgressBar Отправлено: SABROG от Февраль 13, 2010, 09:39 Style sheet же. Это логично, но я не могу понять. Если я рисую контрол через drawControl(), то куда мне ставить стайлшит, виджету на котором рисую? Название: Re: QStyledItemDelegate и QStyleOptionProgressBar Отправлено: BRE от Февраль 13, 2010, 12:57 Это логично, но я не могу понять. Если я рисую контрол через drawControl(), то куда мне ставить стайлшит, виджету на котором рисую? Всему приложения: QApplication::setStyleSheet.Игрался с таким кодом: Код
Если не передавать указатель на QProgressBar при вызове drawControl, то css работать не будет? Вот сейчас думаю, как бы это сделать "покрасивше"... Название: Re: QStyledItemDelegate и QStyleOptionProgressBar Отправлено: SABROG от Февраль 13, 2010, 15:07 Виджет вроде бы не обязательный параметр. Я пытался ставить стили вьюпорту, вьюхе. Никак не влияют. Это что же получается, чтобы отрисовать какой-нибудь контрол в делегате с использованием стайлшитов, то где-то на фоне нужно иметь хотя бы по одному экземпляру этих виджетов?
Название: Re: QStyledItemDelegate и QStyleOptionProgressBar Отправлено: BRE от Февраль 13, 2010, 15:19 Виджет вроде бы не обязательный параметр. Я пытался ставить стили вьюпорту, вьюхе. Никак не влияют. Это что же получается, чтобы отрисовать какой-нибудь контрол в делегате с использованием стайлшитов, то где-то на фоне нужно иметь хотя бы по одному экземпляру этих виджетов? Мне это тоже не очень понятно. ???Но если не указать этот виджет, то stylesheet не применяется. Опять же возникают сложности с рисованием QProgressBar по частям, например при отрисовке QStyle::SE_ProgressBarContents (есть виджет или нет - stylesheet не применяется). Название: Re: QStyledItemDelegate и QStyleOptionProgressBar Отправлено: SABROG от Февраль 13, 2010, 15:23 Может троллям как багрепорт или feature request запостить?
Название: Re: QStyledItemDelegate и QStyleOptionProgressBar Отправлено: BRE от Февраль 13, 2010, 15:39 Может троллям как багрепорт или feature request запостить? Мне было бы очень интересно узнать как рисовать контроллы с использованием stylesheet в делегатах.Сам спросить не смогу (языкам не обучен :)), так что если спросишь и опубликуешь решение - буду благодарен. Название: Re: QStyledItemDelegate и QStyleOptionProgressBar Отправлено: SABROG от Февраль 15, 2010, 16:47 Не хотят принимать багу :(
http://bugreports.qt.nokia.com/browse/QTBUG-8191 Название: Re: QStyledItemDelegate и QStyleOptionProgressBar Отправлено: BRE от Февраль 15, 2010, 19:38 Я думаю логика у них следующая.
Stylesheet можно применить только для конкретного объекта, даже если таблица стилей описана глобально в QApplication. Поэтому, нужен конкретный объект, к которому стили были применены. Остается его создавать... Название: Re: QStyledItemDelegate и QStyleOptionProgressBar Отправлено: SABROG от Февраль 15, 2010, 21:21 Думаю, что стайлшиты очень сильно привязаны к существующим виджетам Qt. Даже если посмотреть на параметры некоторых виджетов, то они очень специфичны. Я например вообще нигде не видел информации о том как можно создать свой виджет с нуля и добавить в него поддержку стайлшитов со своими правилами и элементами управления. Если по аналогии с часами, то для такого виджета можно было бы задать шрифт для цифр, картинки для каждой из стрелок, цвет фона, цвет шрифта, толщину круга и даже вид анимации (easing).
Название: Re: QStyledItemDelegate и QStyleOptionProgressBar Отправлено: zoro86 от Сентябрь 06, 2010, 12:44 У меня такая же не приятность ... кубики получаются длинные и некрасивые необходимо сделать сплошную заливку синим цветом..
не подскажите как?? Название: Re: QStyledItemDelegate и QStyleOptionProgressBar Отправлено: yuriyb от Март 20, 2012, 17:11 Up!
Народ, на те же грабли наступил... Как chunk color для прогрес-бара хотя бы поменять при самостоятельной отрисовке в делегате? Есть идеи ? Название: Re: QStyledItemDelegate и QStyleOptionProgressBar Отправлено: GreatSnake от Март 20, 2012, 17:38 Попробуй использовать QStyleOptionProgressBarV2.
Название: Re: QStyledItemDelegate и QStyleOptionProgressBar Отправлено: andrew.k от Апрель 16, 2012, 20:23 Я так понимаю, что решение отсутствует на данный момент?
Та же проблема (уже тему создал отдельную) |