qt qtableview左对齐缩进10px
时间: 2024-05-21 18:09:54 浏览: 12
在Qt中,可以通过继承QStyledItemDelegate并实现sizeHint和paint方法来自定义QTableView中的单元格显示效果。
具体步骤如下:
1. 继承QStyledItemDelegate类,并重写sizeHint和paint方法。
2. 在sizeHint方法中设置单元格的大小,并返回该大小。
3. 在paint方法中绘制单元格的内容,并根据需要进行左对齐和缩进。
以下是一个简单的示例代码:
```python
class MyItemDelegate(QStyledItemDelegate):
def paint(self, painter, option, index):
# 获取单元格的数据
text = index.data(Qt.DisplayRole)
# 设置画笔
painter.setPen(QPen(Qt.black))
# 设置字体
font = QFont()
font.setPointSize(12)
painter.setFont(font)
# 绘制文本
rect = option.rect.adjusted(10, 0, 0, 0) # 左对齐缩进10px
painter.drawText(rect, Qt.AlignLeft | Qt.AlignVCenter, text)
def sizeHint(self, option, index):
# 获取单元格的数据
text = index.data(Qt.DisplayRole)
# 计算单元格的大小
font = QFont()
font.setPointSize(12)
fm = QFontMetrics(font)
text_width = fm.width(text)
text_height = fm.height()
size = QSize(text_width + 10, text_height)
return size
```
在使用QTableView时,可以将上述自定义的MyItemDelegate对象设置为单元格的委托对象,即可实现左对齐缩进10px的效果。