Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Mityai от Август 23, 2010, 16:42



Название: Снять фокус с кнопки
Отправлено: Mityai от Август 23, 2010, 16:42
Доброго времени суток всем!

Хотелось бы, чтобы после клика на кнопку у нее исчезала рамка-фокус (возникает при наведении мыши). Пробовал clearFocus(...), setStyleSheet(...), но результата особого не добился. :(

Помогите, пожалуйста, с этим! Заранее спасибо.


Название: Re: Снять фокус с кнопки
Отправлено: JamS007 от Август 23, 2010, 18:37
FocusPolicy:NoFocus


Название: Re: Снять фокус с кнопки
Отправлено: Mityai от Август 24, 2010, 10:34
FocusPolicy:NoFocus

Делал
Код:
Button->setFocusPolicy(Qt::NoFocus);
Тоже не помогло.

Я так понял, это фокус табуляции, он действительно снимается. А мне хотелось бы убрать фокус наведения мыши на кнопку.


Название: Re: Снять фокус с кнопки
Отправлено: Авварон от Август 24, 2010, 14:12
лять, подсветку что ли?


Название: Re: Снять фокус с кнопки
Отправлено: Mityai от Август 24, 2010, 16:11
лять, подсветку что ли?

А я знаю как эта хрень называется? :) Да, её.


Название: Re: Снять фокус с кнопки
Отправлено: Авварон от Август 24, 2010, 16:19
врядли css поможет (там можно только добавить подсветку)
имхо надо ковырять в сторону стиля (ибо это системная фича кнопок). Попробуйте глянуть в сторону ToolButton, может быть отсабклассить PushButton и переопределить пейнт эвент


Название: Re: Снять фокус с кнопки
Отправлено: Mityai от Август 24, 2010, 16:22
врядли css поможет (там можно только добавить подсветку)
имхо надо ковырять в сторону стиля (ибо это системная фича кнопок). Попробуйте глянуть в сторону ToolButton, может быть отсабклассить PushButton и переопределить пейнт эвент

Хорошо, спасибо, попробую!


Название: Re: Снять фокус с кнопки
Отправлено: Mityai от Август 24, 2010, 18:48
Не сумел подобрать 100% подходящий по цвету к стандартному Qt-стилю цвет нажатия конпки (надо еще поиграться), а так кнопка, сделанная с вот таким styleSheet, позволяет добиться нужного результата:

Код:
Button->setStyleSheet(QString("QPushButton {\
                              border: 1.1px solid rgb(23,45,106);\
                              border-radius: 4px;\
                              background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, top: 0.81 rgb(242,242,242),\
                              stop: 1 #dadbde);\
                              min-width: 80px;}\
                              QPushButton:pressed {\
                              background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0.8 #dadbde,\
                              stop: 1 rgb(242,242,242));\
                                            }"));

Единственная загвоздка - для кнопок разного размера и border-radius тоже нужно подбирать.


Название: Re: Снять фокус с кнопки
Отправлено: Авварон от Август 25, 2010, 08:25
Кнопки разного размера?:) они у вас с мега стайлшитом что ли?


Название: Re: Снять фокус с кнопки
Отправлено: Mityai от Август 26, 2010, 18:46
Кнопки разного размера?:) они у вас с мега стайлшитом что ли?

Не, может мне показалось, конечно, но вроде б у кнопок с разным размером QRect скругления углов по краям тоже разных радиусов (типа выглядит красивше). Или я не прав? :)