I have two custom-styled QPushButton
buttons. Here is the stylesheet for the Ok
button:
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;
}
Now here's what it looks like:
which is fine. However, if the button is clicked (gets focus), it starts to look like this:
Note that slight shadowy rectangle around the text. It looks as if the text is being "selected". When the button loses focus, it starts looking normal again. I suppose it happens because the selected controls get highlighted like this:
However, I want my button to stay unchanged, no matter whether it's focused or not. Is there any way to solve this issue?
This removes the orange rectangle :
QPushButton:focus {
outline: none;
}
PS : You should try to add some style to the focus state like a changed background-color so that this state stays "visible" to the user.
Found the solution. It turned out to be very simple.
The issue was indeed caused by the button receiving focus. All I needed to do is set the button's focusPolicy
attribute to NoFocus
. It can be done either in QtDesigner:
or in the code:
ui.okButton->setFocusPolicy(Qt::NoFocus);
After it's done, the clicks on the button will not cause it to get focus, and the appearance will not change.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With