关于Qt样式表的某些事情我似乎不太了解。我只想将小部件的背景色设置为白色。但是由于某种原因,背景颜色实际上只出现在我的小部件的子级中。
我尝试将self.setAutoFillBackground(True)
添加到我的代码中,但是没有成功。
我也曾尝试从https://wiki.qt.io/How_to_Change_the_Background_Color_of_QWidget选择解决方案。它有效,但前提是我没有设置样式表,底部边框是必需的。
class TopLabelNewProject(qt.QWidget):
def __init__(self, parent=None):
super().__init__(parent)
layout = qt.QHBoxLayout(self)
layout.setContentsMargins(40, 0, 32, 0)
self.setLayout(layout)
self.setFixedHeight(80)
self.setStyleSheet("""
background-color: white;
border-bottom: 1px solid %s;
""" % colors.gray)
self.label = qt.QLabel("Dashboard")
self.label.setStyleSheet("""
QLabel {
font: medium Ubuntu;
font-size: 20px;
color: %s;
}""" % colors.gray_dark)
layout.addWidget(self.label, alignment=qt.Qt.AlignLeft)
self.newProjectButton = Buttons.DefaultButton("New project", self)
layout.addWidget(self.newProjectButton, alignment=qt.Qt.AlignRight)
注意:Buttons.DefaultButton只是具有自定义样式表的QPushButton。
这是我要实现的,带有标签和按钮的白色标题栏:
但是只有标签带有白色背景。
答案 0 :(得分:1)
尝试一下:
import sys
from PyQt5 import Qt as qt
class TopLabelNewProject(qt.QWidget):
def __init__(self, parent=None):
super().__init__(parent)
layout = qt.QHBoxLayout(self)
layout.setContentsMargins(40, 0, 32, 0)
self.setLayout(layout)
self.setFixedHeight(80)
self.label = qt.QLabel("Dashboard")
layout.addWidget(self.label, alignment=qt.Qt.AlignLeft)
# self.newProjectButton = Buttons.DefaultButton("New project", self)
self.newProjectButton = qt.QPushButton("New project", self)
layout.addWidget(self.newProjectButton, alignment=qt.Qt.AlignRight)
style = '''
QWidget {
background-color: white;
}
QLabel {
font: medium Ubuntu;
font-size: 20px;
color: #006325;
}
QPushButton {
background-color: #006325;
color: white;
min-width: 70px;
max-width: 70px;
min-height: 70px;
max-height: 70px;
border-radius: 35px;
border-width: 1px;
border-color: #ae32a0;
border-style: solid;
}
QPushButton:hover {
background-color: #328930;
}
QPushButton:pressed {
background-color: #80c342;
}
'''
if __name__ == '__main__':
app = qt.QApplication(sys.argv)
app.setStyleSheet(style)
ex = TopLabelNewProject()
ex.show()
sys.exit(app.exec_())
答案 1 :(得分:0)
首先(仅更改一个窗口小部件):在窗口小部件上单击鼠标右键,单击“更改样式表”,然后打开“样式表”窗口,当您在窗口内添加内容时,窗口小部件也将更改。 第二(更改所有选定的窗口小部件):使用属性窗口,标记要更改的所有窗口小部件,单击styleSheetrow的...。现在,当您进行更改时,styleSheet窗口将打开,您选择的所有小部件都会发生更改。
插入样式表:
QLabel <-元素名称
{...... ...} <-必须在更改周围设置大括号
background-color:黑色; <---设置Backgroundcolor
完整示例:
QLabel{
border-style: outset;
border-width: 2px;
border-color: black;
Background-color: rgb(255,247,191);
color: black;
}
有关Sylesheet窗口的更多信息,请阅读https://doc.qt.io/Qt-5/stylesheet-syntax.html
友好的愿望,嗅探