qtablewidget样式表美化
时间: 2025-01-08 21:21:35 浏览: 3
### QTableWidget 样式表美化
对于 `QTableWidget` 的样式表设置,可以采用类似于 CSS 的方式来定义其外观。通过指定不同的选择器和属性组合,能够实现丰富的视觉效果。
#### 基本样式应用
为了改变表格的整体背景颜色以及单元格边框的颜色:
```css
QTableWidget {
alternate-background-color: #f9f9f9;
gridline-color: #dcdcdc;
}
```
此部分设置了交替行的背景色为浅灰色,并调整了网格线的颜色[^2]。
#### 行与列头定制
针对表头进行特别设计,使其更加清晰易读:
```css
QHeaderView::section {
background-color: #ebebeb;
color: black;
padding-left: 4px;
border: 1px solid #dcdcdc;
}
/* 当鼠标悬停于表头上 */
QHeaderView::section:hover {
background-color: #dfdfdf;
}
```
这段代码不仅改变了默认的表头样式,还增加了当用户将光标移动到某一部分时的变化效果。
#### 单元格选中状态优化
改善被选中的单元格显示模式,提高用户体验:
```css
QTableView:item:selected {
background-color: #3498db;
color: white;
}
QTableView:item:focus {
outline: none;
}
```
这里指定了当选取项目时所呈现的新颖色彩方案;同时去除了焦点状态下不必要的外轮廓线条。
#### 完整示例展示
综合以上各部分内容,形成如下完整的 `QTableWidget` 样式表示例:
```python
from PyQt6.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem
app = QApplication([])
main_window = QMainWindow()
table_widget = QTableWidget(5, 3) # 创建一个五行三列的表格控件实例
style_sheet = """
QTableWidget {
alternate-background-color: #f9f9f9;
gridline-color: #dcdcdc;
}
QHeaderView::section {
background-color: #ebebeb;
color: black;
padding-left: 4px;
border: 1px solid #dcdcdc;
}
QHeaderView::section:hover {
background-color: #dfdfdf;
}
QTableView:item:selected {
background-color: #3498db;
color: white;
}
QTableView:item:focus {
outline: none;
}"""
table_widget.setStyleSheet(style_sheet)
for row in range(table_widget.rowCount()):
for col in range(table_widget.columnCount()):
item = QTableWidgetItem(f"Item {row},{col}")
table_widget.setItem(row, col, item)
main_window.setCentralWidget(table_widget)
main_window.show()
app.exec()
```
阅读全文