Рассмотрим следующий пример с игрушкой:
from PyQt5 import QtWidgets, QtGui, QtCore
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
w = QtWidgets.QWidget()
layout = QtWidgets.QVBoxLayout()
w.setLayout(layout)
self.setCentralWidget(w)
btn1 = QtWidgets.QPushButton("1")
btn1.setStyleSheet('''QPushButton {background-color : red;}
QPushButton:!hover {background-color: grey;}''')
btn2 = QtWidgets.QPushButton("2")
btn2.setStyleSheet('QPushButton {background-color : green;}')
btn3 = QtWidgets.QPushButton("3")
btn3.setStyleSheet('QPushButton {background-color : blue;}')
layout.addWidget(btn1)
layout.addWidget(btn2)
layout.addWidget(btn3)
self.show()
app = QtWidgets.QApplication([])
window = MainWindow()
app.exec_()
Как видите, я могу дать указание любой отдельной кнопке оставаться серой, когда мышь не парит над ней, с помощью следующего:
QPushButton:!hover {background-color: grey;}
Мне бы хотелось, чтобы все кнопки в макете оставались серыми, когда я не зависал над виджетом, и меняли их цвет в то же время, когда мышь входит в область виджета.
Я попытался добавить строку ниже, но она не работает:
w.setStyleSheet('QPushButton:!hover {background-color: gray;}')
Что я делаю не так?