Python qt样式表不工作

Python qt样式表不工作,python,qt,pyqt,stylesheet,Python,Qt,Pyqt,Stylesheet,我正在写一个小程序,下面是代码: import sys from PyQt5.Qt import QApplication from PyQt5 import QtWidgets class CMyWidget(QtWidgets.QWidget): def __init__(self,p = None): super(CMyWidget,self).__init__(p) if __name__ == "__main__": app = QApplicati

我正在写一个小程序,下面是代码:

import sys
from PyQt5.Qt import QApplication
from PyQt5 import QtWidgets

class CMyWidget(QtWidgets.QWidget):
    def __init__(self,p = None):
        super(CMyWidget,self).__init__(p)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    #w = QtWidgets.QWidget()   #this will be ok  #1
    w = CMyWidget()                              #2
    label = QtWidgets.QLabel(w)
    label.setText("12345")
    btn = QtWidgets.QPushButton(w)
    btn.setText("X")

    hlayout = QtWidgets.QHBoxLayout(w)
    hlayout.addWidget(label)
    hlayout.addWidget(btn)
    w.setStyleSheet("border:none;"\
                "border-bottom:5px solid rgb(255,0,0)")
    w.show()
    sys.exit(app.exec_())

问题是,如果我使用
#1
,那么一切都正常,所有小部件的底部边框都画好了;但是如果我改为
#2
,独子小部件绘制底部边框,
CMyWidget
不会绘制底部边框,我在这里做错了吗?

在派生类中尝试使用样式表时,样式表有一些问题。要解决您的问题,请尝试使用以下方法:

w = CMyWidget()    
w.setAttribute(QtCore.Qt.WA_StyledBackground)      

在这段代码中,QtCore.Qt.WA_StyledBackground意味着应该使用样式化的背景来绘制小部件。

在派生类中尝试使用样式表时,样式表存在一些问题。要解决您的问题,请尝试使用以下方法:

w = CMyWidget()    
w.setAttribute(QtCore.Qt.WA_StyledBackground)      

在这段代码中,QtCore.Qt.WA_StyledBackground意味着小部件应该使用样式化的背景来绘制。

我使用它的方式和工作方式是说明样式是用于什么类型的对象,在您的情况下是:

w.setStyleSheet( "QtWidgets.QWidget { border:none; border-bottom:5px solid rgb(255,0,0)}")

我使用它的方式和工作方式是说明该样式的目标对象类型,在您的情况下是:

w.setStyleSheet( "QtWidgets.QWidget { border:none; border-bottom:5px solid rgb(255,0,0)}")

不工作,如果我将其更改为“QtWidgets.QWidget…”,则所有小部件停止绘制底部边框不工作,如果我将其更改为“QtWidgets.QWidget…”,则所有小部件停止绘制底部边框谢谢,这很有效!我读了文档,它说WA_StyledBackground:表示小部件应该使用样式化背景绘制,“样式化背景”是什么意思?我是qt的新手,我是中国人,我糟糕的英语就是听不懂sentences@user2689236默认情况下,从QWidget类派生的忽略样式表,此属性允许您使用(打开)样式表“谢谢你的反馈!一旦你赢得了总共15个声望,你的投票将发生变化……”,“也许我没有投票权?@user2689236目前你不能对答案进行投票,但这不是你的错,一切都很好。谢谢,成功了!我读了文档,它说WA_StyledBackground:表示小部件应该使用样式化背景绘制,那么“样式化背景”是什么意思”“什么意思?我是qt的新手,我是中国人,我糟糕的英语就是听不懂sentences@user2689236默认情况下,从QWidget类派生的忽略样式表,此属性允许您使用(打开)样式表“谢谢你的反馈!一旦你赢得总共15个声望,你的投票将发生变化……”,“也许我没有投票权?@user2689236目前你无法投票回答,但这不是你的错,一切都很好。