如何在 Pyqt5 中设置 QTableWidget 的样式
How to style a QTableWidget in Pyqt5
我目前正在设计我的 GUI 应用程序,但我在设计我的 QTableWidget 时遇到了一些麻烦,因为正如你在图片中看到的那样,我的 QTableWidget 的左上角有一个小的白色区域,我想要它与 table.
的其余部分一样呈浅蓝色
这是我到目前为止的样式代码:
def start_ui():
app = QtWidgets.QApplication(sys.argv)
style = """
QFrame{
color: blue;
background: lightgreen;
font-weight: bold;
}
QLabel{
color: blue;
font-weight: bold;
}
QLineEdit{
color: blue;
border-style: solid;
border: 2px solid black;
background: lightblue;
font-weight: bold;
}
QPushButton{
border-style: solid;
border: 2px solid black;
color: darkblue;
background: lightblue;
font-weight: bold;
}
QTableWidget{
background: lightblue;
}
"""
app.setStyleSheet(style)
win = ModbusLoggerWindow()
win.show()
sys.exit(app.exec_())
然后我在 class 中有这三行,我在其中创建我的 QTableWidget,这些行为我的 verticalheaders 和 horizontalheaders 设置样式:
stylesheetHeader = "::section{background-color: lightblue}"
self.tableWidget.horizontalHeader().setStyleSheet(stylesheetHeader)
self.tableWidget.verticalHeader().setStyleSheet(stylesheetHeader)
左上角的这个元素不是 QHeaderView 的一部分,而是 QAbstractButton 的一部分,因此可能的解决方案是将样式表直接应用于按钮:
button = self.tableWidget.findChild(QAbstractButton)
button.setStyleSheet("background-color: lightblue")
为了避免使用 findChild,可以通过 QTableWidget 进行设置:
stylesheet = """
QHeaderView::section{background-color: lightblue}
QAbstractButton{background-color: lightblue}
"""
self.tableWidget.setStyleSheet(stylesheet)
我目前正在设计我的 GUI 应用程序,但我在设计我的 QTableWidget 时遇到了一些麻烦,因为正如你在图片中看到的那样,我的 QTableWidget 的左上角有一个小的白色区域,我想要它与 table.
的其余部分一样呈浅蓝色这是我到目前为止的样式代码:
def start_ui():
app = QtWidgets.QApplication(sys.argv)
style = """
QFrame{
color: blue;
background: lightgreen;
font-weight: bold;
}
QLabel{
color: blue;
font-weight: bold;
}
QLineEdit{
color: blue;
border-style: solid;
border: 2px solid black;
background: lightblue;
font-weight: bold;
}
QPushButton{
border-style: solid;
border: 2px solid black;
color: darkblue;
background: lightblue;
font-weight: bold;
}
QTableWidget{
background: lightblue;
}
"""
app.setStyleSheet(style)
win = ModbusLoggerWindow()
win.show()
sys.exit(app.exec_())
然后我在 class 中有这三行,我在其中创建我的 QTableWidget,这些行为我的 verticalheaders 和 horizontalheaders 设置样式:
stylesheetHeader = "::section{background-color: lightblue}"
self.tableWidget.horizontalHeader().setStyleSheet(stylesheetHeader)
self.tableWidget.verticalHeader().setStyleSheet(stylesheetHeader)
左上角的这个元素不是 QHeaderView 的一部分,而是 QAbstractButton 的一部分,因此可能的解决方案是将样式表直接应用于按钮:
button = self.tableWidget.findChild(QAbstractButton)
button.setStyleSheet("background-color: lightblue")
为了避免使用 findChild,可以通过 QTableWidget 进行设置:
stylesheet = """
QHeaderView::section{background-color: lightblue}
QAbstractButton{background-color: lightblue}
"""
self.tableWidget.setStyleSheet(stylesheet)