ElaTableView 组件文档
概述
ElaTableView 是一个现代化的表格视图组件,继承自 QTableView。它提供了自定义样式、行悬浮、主题适配等特性。
特性
- 自定义样式
- 行悬浮效果
- 主题适配
- 隔行变色
- 选中特效
- 滚动优化
- 表头自定义
- 性能优化
属性
基础属性
cpp
// 表头边距
Q_PROPERTY(int headerMargin
READ getHeaderMargin
WRITE setHeaderMargin)信号
cpp
// 视图显示
Q_SIGNAL void tableViewShow();
// 视图隐藏
Q_SIGNAL void tableViewHide();样式系统
表格样式
cpp
void drawControl(CE_ItemViewItem) {
// 背景绘制
if (state & State_Selected) {
painter.setBrush(selectedColor);
} else if (state & State_MouseOver) {
painter.setBrush(hoverColor);
}
// 图标绘制
if (!icon.isNull()) {
icon.paint(painter, iconRect);
}
// 文本绘制
painter.setPen(textColor);
painter.drawText(textRect, text);
// 选中特效
if (state & State_Selected) {
painter.setBrush(primaryColor);
painter.drawRoundedRect(
indicator, radius, radius
);
}
}表头样式
cpp
void drawControl(CE_HeaderSection) {
// 背景绘制
painter.setBrush(headerColor);
painter.drawRect(rect);
// 悬浮效果
if (state & State_MouseOver) {
painter.setBrush(hoverColor);
}
// 按下效果
if (state & State_Sunken) {
painter.setBrush(pressColor);
}
}使用示例
基础用法
1. 创建表格
cpp
// 创建表格
ElaTableView* tableView =
new ElaTableView(this);
// 设置模型
tableView->setModel(model);
// 设置选择模式
tableView->setSelectionBehavior(
QAbstractItemView::SelectRows
);2. 表头设置
cpp
// 设置表头字体
QFont headerFont =
tableView->horizontalHeader()->font();
headerFont.setPixelSize(16);
tableView->horizontalHeader()
->setFont(headerFont);
// 隐藏垂直表头
tableView->verticalHeader()
->setHidden(true);
// 设置列宽模式
tableView->horizontalHeader()
->setSectionResizeMode(
QHeaderView::Interactive
);3. 外观设置
cpp
// 设置隔行变色
tableView->setAlternatingRowColors(true);
// 设置图标大小
tableView->setIconSize(QSize(38, 38));
// 设置最小尺寸
tableView->horizontalHeader()
->setMinimumSectionSize(60);
tableView->verticalHeader()
->setMinimumSectionSize(46);4. 列宽设置
cpp
// 显示时设置列宽
connect(tableView,
&ElaTableView::tableViewShow,
this, [=]() {
tableView->setColumnWidth(0, 60);
tableView->setColumnWidth(1, 205);
tableView->setColumnWidth(2, 170);
tableView->setColumnWidth(3, 150);
tableView->setColumnWidth(4, 60);
});注意事项
- 继承自 QTableView
- 自动处理主题切换
- 智能内存管理
- 事件处理
- 性能优化
- 主题适配
- 样式继承
- 滚动优化
最佳实践
- 合理设置大小
- 控制数据量
- 优化渲染
- 注意性能
- 统一交互
- 保持一致
- 动画流畅
- 响应式布局
相关组件
- QTableView: 基类
- ElaScrollBar: 滚动条组件
- QProxyStyle: 样式系统
- QHeaderView: 表头组件