Styling QPushButton in PyQt with Style Sheets

Posted by


PyQt is a set of Python bindings for the Qt application framework and runs on all platforms supported by Qt, which includes Windows, MacOS, and Linux. One of the features of PyQt is the ability to customize the style of GUI elements using style sheets. In this tutorial, we will focus on customizing the style of QPushButton using style sheets.

To get started, you will need to have PyQt installed on your system. You can install PyQt using pip by running the following command:

pip install pyqt5

Once you have PyQt installed, you can start customizing the style of QPushButton using style sheets. The style sheet for QPushButton follows the same syntax as CSS, with a few differences. Here’s a basic example of a style sheet for a QPushButton:

QPushButton {
    background-color: #FF5733;
    color: white;
    font-family: Arial;
    font-size: 16px;
    border: 2px solid #FF5733;
    border-radius: 5px;
}

QPushButton:hover {
    background-color: #FF8147;
    border-color: #FF8147;
}

QPushButton:pressed {
    background-color: #D63200;
}

In this example, we have customized the background color, text color, font family, font size, border color, border radius, and hover and pressed states for the QPushButton.

To apply the style sheet to a QPushButton in your PyQt application, you can use the setStyleSheet method. Here’s an example of how to create a QPushButton with a custom style sheet:

import sys
from PyQt5.QtWidgets import QApplication, QPushButton

app = QApplication(sys.argv)

button = QPushButton("Click me")
button.setStyleSheet("""
    QPushButton {
        background-color: #FF5733;
        color: white;
        font-family: Arial;
        font-size: 16px;
        border: 2px solid #FF5733;
        border-radius: 5px;
    }

    QPushButton:hover {
        background-color: #FF8147;
        border-color: #FF8147;
    }

    QPushButton:pressed {
        background-color: #D63200;
    }
""")

button.show()
sys.exit(app.exec_())

When you run this code, you should see a QPushButton with the custom style that we defined in the style sheet. You can further customize the style of the QPushButton by adding more properties to the style sheet or by creating different styles for different QPushButton instances.

In conclusion, PyQt style sheets provide a powerful way to customize the appearance of GUI elements in your PyQt applications. By following the syntax of CSS and using the setStyleSheet method, you can easily create custom styles for QPushButton and other Qt widgets. Experiment with different properties and values to create beautiful and unique styles for your PyQt applications.

0 0 votes
Article Rating
3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@light4163
1 month ago

Genius !!!!!!!!!
Thanks for your videos

@lholeydesign2316
1 month ago

Hello sir! can you make a tutorial how to work with stacked Widget without convert the UI file in python?
I would like to change page in the program using stacked widget, but I don't want to convert the UI file

@RobdarkRobdark
1 month ago

These styling examples are great. I'm new to PyQt and your vids helped me a TON to make my app look better. I went from ugly 2000 software to a professional, modern looking app. It's not Adobe's level, but it looks clean and people at the organization I developed it for are very happy with it.