首页 > 解决方案 > 采用背景颜色时如何更改按钮颜色?

问题描述

在这里,我给出了我的屏幕截图,我希望在悬停时更改整个按钮颜色,但只有边框或更改按钮在中心区域采用背景颜色我该如何更改它

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)

标签: pythonpyqtpyqt4

解决方案


如果您将样式表应用于小部件而不指示选择器,它将应用于小部件及其子级,因此当您使用它时,background-image: url(/home/balaji/black.png)它也适用于按钮,因此如果您正在设置它但红色背景在它的background-image顶部. 一种解决方案是background-image: url()在悬停状态处于活动状态时在按钮上设置 a,这将消除 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()}
        ''')

补充说明:


推荐阅读