Russian Qt Forum
Октябрь 02, 2024, 05:38
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
StyleSheet в делегатах
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: StyleSheet в делегатах (Прочитано 2612 раз)
Sasha
Гость
StyleSheet в делегатах
«
:
Декабрь 05, 2013, 21:18 »
Здравствуйте,
Для рисования ячеек таблиц я использую делегат, который наследую от QStyledItemDelegate. И в нём рисую вначале кнопку на всю ячейку, а потом то что в самой ячейке. Это более-менее работает.
Теперь я решил добавить возможность модификации интерфейса при помощи таблиц стилей (использую ф-ю qApp->setStyleSheet(...)) Интерфейс действительно меняется как надо, кроме этих самых делегатов - они рисуются так, как будто на них эта таблица стилей не влияет. Причём если я меняю интерфейс не
таблицей
стилей, а задаю
класс
стиля ф-ей qApp->setStyle(...), то этот стиль применяется и к делегатам.
Записан
Sasha
Гость
Re: StyleSheet в делегатах
«
Ответ #1 :
Декабрь 05, 2013, 21:40 »
Нашёл ответы:
http://www.forum.crossplatform.ru/index.php?showtopic=5968
http://www.prog.org.ru/topic_12423_0.html
Там говорится, что в ф-ю drawControl нужно передавать виджет (я кстати пытался использовать ф-ю QStyleOption::initFrom куда передавал тоже указатель на виджет, но это не помогало), только пока не нашёл как же обойтись без создания виджета, не создавать же его прям в ф-ии paint и статическую не сделать т.к. таблица стилей может менятся,... хотя нет, статический виджет тоже работает, так что это пока на мой взгляд лучшее решение.
Записан
Sasha
Гость
Re: StyleSheet в делегатах
«
Ответ #2 :
Декабрь 05, 2013, 22:21 »
Хотя со static-ом всё же глючит. Я сделал так, чтобы подсвечивалась ячейка таблицы над которой находится указатель мыши. Так вот в этом случае не всегда корректно работает со static-ом. В частности когда установлен стиль висты (я работаю под 8-ой), то при проведении мыши над ячейками они становятся белыми. Я подозреваю (и это, кстати возможно ключ к пониманию почему нужно передавать виджет в drawControl) что это связано с тем, что в этом стиле происходит не мгновенная смена подсвечена кнопка/не подсвечена, а постепенная. Т.е. виджет нужен, чтобы ему посылать какие-то события, взводить таймеры и т.д. Кстати это подтверждается тем, что при других стилях такого глюка не наблюдается.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...