在这里,我给出了屏幕截图,我希望将鼠标悬停时整个按钮的颜色更改,但是只有边框或更改按钮会在cente区域显示背景颜色,我该如何更改
class window(QtGui.QMainWindow):
def __init__(self):
super(window,self).__init__()
self.setGeometry(50,50,500,500)
self.setWindowTitle("PAVAI")
self.setStyleSheet("background-image: url(/home/balaji/black.png)")
#self.setStyleSheet('background-color: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 1,stop: 0 white, stop: 0.4 gray,stop: 1 green);')
Calculate = QtGui.QPushButton("SHRINKAGE",self)
Calculate.move(100,200)
Calculate.resize(270,320)
Calculate.setStyleSheet('QPushButton :{ background-color: red; }')
Calculate.setStyleSheet('QPushButton:hover{ background-color: red; }')
Calculate.clicked.connect(self.shrinkage)
答案 0 :(得分:0)
如果将样式表应用于窗口小部件而未指示选择器,则样式表将应用于窗口小部件及其子项,因此当您使用background-image: url(/home/balaji/black.png)
时,样式表也将应用于按钮,因此如果设置为红色背景但background-image
在它上面。一种解决方案是在悬停状态处于活动状态时在按钮上设置background-image: url()
,这将消除QMainWindow中设置的背景图像:
class window(QtGui.QMainWindow):
def __init__(self):
super(window,self).__init__()
self.setGeometry(50,50,500,500)
self.setWindowTitle("PAVAI")
self.setStyleSheet("background-image: url(/home/balaji/black.png)")
calculate = QtGui.QPushButton("SHRINKAGE",self)
calculate.setGeometry(100,200, 270,320)
calculate.setStyleSheet('''
QPushButton:hover{ background-color: red; background-image: url()}
''')
其他说明:
Calculate.setStyleSheet(...)
,在这种情况下,只会使用最后一个。