Skip to main content
 首页 » 编程设计

python之qt 样式表不工作

2025年05月04日14over140

所以我正在写一个小程序,代码如下:

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 意味着应该使用样式背景绘制小部件。