Визуальная проблема кнопкой QPushButton
у меня есть два пользовательских-стиле QPushButton
кнопки. Вот таблица стилей для :
QPushButton
{
background-color:#9dce2c;
border-radius:7px;
border:1px solid #83c41a;
color:#ffffff;
font-size:15px;
font-weight:bold;
padding:4px 24px;
text-decoration:none;
}
QPushButton:pressed
{
border:2px solid black;
}
вот как это выглядит:
- прекрасно. Однако, если кнопка нажата (получает фокус), она начинает выглядеть так:
обратите внимание, что небольшой темный прямоугольник вокруг текста. Похоже, что текст "выбирается". Когда кнопка теряет фокус, она снова начинает выглядеть нормально. Я полагаю, это происходит потому, что выбранные элементы управления выделяются следующим образом:
однако я хочу, чтобы моя кнопка оставалась неизменной, независимо от того, сфокусирована она или нет. Есть ли способ решить эту проблему?
4 ответов
нашел решение. Он оказался очень простой.
проблема действительно была вызвана кнопкой, получающей фокус. Все, что мне нужно было сделать, это установить кнопку до NoFocus
. Это можно сделать либо в QtDesigner:
или в коде:
ui.okButton->setFocusPolicy(Qt::NoFocus);
после того, как это будет сделано, щелчки по кнопке не заставят его сосредоточиться, и внешний вид не изменится.
это удаляет оранжевый прямоугольник:
QPushButton:focus {
outline: none;
}
PS: вы должны попытаться добавить некоторый стиль в состояние фокуса, как измененный цвет фона, чтобы это состояние оставалось "видимым" для пользователя.
Я не пытался, но я думаю, что вы могли бы исправить это, установив QPushButton:hover
в том же стиле, что и QPushButton
. Есть некоторый стиль по умолчанию, который делает кнопку Красной при наведении, вам просто нужно узнать, какой из них (вероятно,hover
) и переопределить его.
здесь:http://doc.qt.io/qt-5/stylesheet-examples.html
Я нашел такие параметры, как:
"selection-color: yellow;"
"selection-background-color: blue;"
Я не пробовал их, но это может быть то, что вам нужно.