如何使用背景色更改按钮颜色?

时间:2019-02-27 04:03:54

标签: python pyqt pyqt4

在这里,我给出了屏幕截图,我希望将鼠标悬停时整个按钮的颜色更改,但是只有边框或更改按钮会在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)

1 个答案:

答案 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()}
        ''')

其他说明: