Algorys
Algorys

Reputation: 1790

QPushbutton How to remove the color created by setDefault(True)

I'm currently try to custom my QPushButton in Qt (PyQt in fact). So I set StyleSheet to do it.

But the problem is that I need to set this button to Default by setDefault to True.

And if I do that, I've a sort of color drool over ... how can I get rid of it?

Here is an example:

button = QPushButton('login')
button.setDefault(True)
button.setObjectName('login')
button.setStyleSheet(
    """
        QPushButton#login {
            background-color: #4caf50;
            color: white;
            border: none;
        }
        QPushButton:pressed#login {
            background-color: #59b75c;
        }
    """
)

Button appears green, but text is not fully white... I've try to set StyleSheet on QPushButton:default But it does not change anything at all

Upvotes: 2

Views: 1766

Answers (2)

Algorys
Algorys

Reputation: 1790

After long searches on the internet, I finally found how to do. I've to set outline to none to remove it.

QPushButton#login {
    background-color: #4caf50;
    color: white;
    outline: none;
}

Then slobbery color disappear.

Upvotes: 1

dterpas
dterpas

Reputation: 161

I can see you have a small error in your code. you gave us

QPushButton:pressed#login {
    background-color: #59b75c;
}

but this does not work.

The correct way to do it is

QPushButton#login:pressed {
    background-color: #59b75c;
}

also, be sure that after the '#' you use the objectName of the pushButton and not the text of the button.

Here is a link with some styleSheet examples

Upvotes: 2

Related Questions