Как я могу стилизовать элемент PyQt5 QToolBar?

Я пишу приложение с python и PyQt5. Я хочу стилизовать элементы QToolBar с помощью Qt StyleSheet, но не могу. Для этого я использую метод setStyleSheet. Я хочу установить отступы для элементов QToolBar.

это мой код:

from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QToolBar
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import QSize
from sys import argv

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.GUI()
    def GUI(self):
        self.setWindowTitle("test")
        self.setFixedSize(640, 480)

        self.toolbar = QToolBar("hello")
        self.toolbar.setFixedSize(640, 64)
        self.addToolBar(self.toolbar)
        self.toolbar.setMovable(False)
        self.toolbar.setIconSize(QSize(64, 64))

        self.newtool = QAction(QIcon("data\\file2.png"), "buutton", self)
        self.toolbar.addAction(self.newtool)


        self.setStyleSheet("""
            QMainWindow {
                background: #eee;
            }

            QToolBar {
                background: #eee;
                padding: 0px;
                border: 0px;
            }

            QToolBar::item {
                background: #59f;   # It don't work
                padding: 10px;   # It don't work
            }

            """)    


if __name__ == "__main__":
    app = QApplication(argv)
    window = MainWindow()
    window.show()

    app.exec_()

person MSKF    schedule 28.04.2020    source источник


Ответы (1)


Элементы QTooBar - это QToolButton, поэтому вы должны использовать этот виджет:

QToolBar QToolButton{
    background-color: #59f;
    padding: 10px;
}
person eyllanesc    schedule 28.04.2020