Disable frame focus rect |
Здравствуйте, гость ( Вход | Регистрация )
Disable frame focus rect |
DEADHUNT |
15.11.2009, 16:11
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
кто нибудь знает как можно отключить прорисовку прямоугольника при получении фокуса?
|
|
|
Litkevich Yuriy |
15.11.2009, 16:23
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
SABROG |
15.11.2009, 16:58
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Я пока знаю только 2 варианта и оба с недостатками.
Первый это вызвать QWidget::setFocusPolicy(Qt::NoFocus), недостаток в том, что кнопку теперь кроме как мышкой больше никак не нажать и фокуса у такой кнопки вообще нет. Второй вариант это использовать прокси для стиля и переопределить в своем стиле метод QStyle::drawPrimitive(), если метод получает в качестве параметра PE_FrameFocusRect, то игнорить. Главное тут стиль установить только для нужных виджетов, а не для всего приложения. |
|
|
DEADHUNT |
15.11.2009, 17:22
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
Второй вариант это использовать прокси для стиля и переопределить в своем стиле метод QStyle::drawPrimitive(), если метод получает в качестве параметра PE_FrameFocusRect, то игнорить. Главное тут стиль установить только для нужных виджетов, а не для всего приложения. хотел сделать что-то типа второго(переопределить drawPrimitive и игнорировать PE_FrameFocusRect, только не понял как сделать), SABROG спасибо за пример. Я пока знаю только 2 варианта и оба с недостатками. а в чём недостаток второго? |
|
|
DEADHUNT |
15.11.2009, 18:06
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
вот так получилось решить:
Раскрывающийся текст
Причина редактирования: вместо тэга spoiler используй expand
|
|
|
SABROG |
15.11.2009, 18:14
Сообщение
#6
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
|
|
|
DEADHUNT |
15.11.2009, 18:23
Сообщение
#7
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
|
|
|
Litkevich Yuriy |
15.11.2009, 18:23
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
DEADHUNT |
15.11.2009, 18:25
Сообщение
#9
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
|
|
|
Litkevich Yuriy |
15.11.2009, 18:26
Сообщение
#10
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
DEADHUNT, да ты прав. Я почему-то думал, что можно создавать экземпляры QStyle.
|
|
|
Текстовая версия | Сейчас: 24.12.2024, 3:07 |