qtableview item margin c++ QItemDelegate
时间: 2024-05-06 18:19:04 浏览: 139
QTableviewv表头添加控件
在Qt中,可以使用QItemDelegate类来自定义QTableView中单元格的外观和行为。如果你想设置QTableView中每个单元格的边距,可以在QItemDelegate子类中重写sizeHint()函数,并在该函数中创建一个QStyleOptionViewItem对象,然后设置其边距。
下面是一个示例代码,展示如何在QItemDelegate子类中设置QTableView单元格的边距:
```c++
class MyItemDelegate : public QItemDelegate
{
public:
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override
{
QSize size = QItemDelegate::sizeHint(option, index);
// 设置边距为10像素
size += QSize(20, 20);
return size;
}
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
{
// 绘制单元格内容
QItemDelegate::paint(painter, option, index);
}
};
```
在这个示例中,我们在sizeHint()函数中创建了一个QStyleOptionViewItem对象,并将其边距设置为20像素。然后返回一个新的QSize对象,该对象是原始大小加上边距大小。这样,每个单元格都会有20像素的边距。
注意,在重写paint()函数时,我们调用了基类的paint()函数来绘制单元格内容。这是因为我们只想更改单元格的边距,而不是其内容的绘制方式。
阅读全文