数据控件

数据控件

数据控件用于展示列表、表格、树和属性面板。它们通常需要同时处理数据模型、滚动条、行高、选中状态和单元格样式。

控件类型

控件 子内容与能力 典型用途
UIGQTableView 表头、行项、复选框列、滚动条、自定义列控件、Model/View 数据 表格、业务列表、明细矩阵
UIGQTreeView 层级节点、表头、行高、展开折叠、滚动条 目录树、组织结构、配置树
UIGQListView 条目模板、选中状态、行高/列宽、滚动条 消息列表、模板列表、结果集合
UIGQList 简单列表项、选中状态、基础列表操作 简单选项列表、轻量数据集合
UIGQPropertyList 属性行、名称值结构、滚动区域 参数面板、对象配置、属性表

类继承关系

QWidget
  ├─ QTableView
  │   └─ UIGQTableView + IUIGQWidgetBase
  ├─ QTreeView
  │   └─ UIGQTreeView + IUIGQWidgetBase
  ├─ QListView
  │   └─ UIGQListView + IUIGQWidgetBase
  ├─ QListWidget
  │   └─ UIGQList + IUIGQWidgetBase
  └─ QScrollArea
      └─ UIGQScrollView + IUIGQWidgetBase
          └─ UIGQPropertyList

数据控件保留 Qt Model/View 或列表控件能力,WidgetKit 扩展表头、滚动条、行项样式、自定义列控件和主题配置。

UIGQTableView

UIGQTableView 基于 QTableView,增加自绘表头、行项样式、复选框列、滚动条样式和自定义列控件。

UIGQTableView* table = new UIGQTableView(parent);
table->setThemeName("DefaultTable");
table->setItemHeight(36);
table->setCheckstyle(true);
table->setScrollbarSize(false, 12);
table->setScrollbarSize(true, 12);
table->setModel(model);

常用接口:

接口 说明 参数 返回值
setModel(QAbstractItemModel* model) 设置表格数据模型。 model:Qt 数据模型。 void
model() const 获取当前数据模型。 QAbstractItemModel*
setItemHeight(int height) 设置行高。 height:行高像素。 void
setCheckstyle(bool enabled) 开启表格复选框样式。 enabled:是否启用。 void
setColumnWidget(int column, UIGQContainer* widget) 为列配置自定义控件。 column:列索引;widget:自定义容器。 void
setScrollbarSize(bool isHorizontal, int size) 设置滚动条厚度。 isHorizontal:是否水平;size:厚度。 void
selectedRows() 获取当前选择行。 QList<int>
selectRow(int row) 选择指定行。 row:行索引。 void
headerCheckedChanged(bool checked) 表头复选框变化信号。 checked:表头是否选中。 void
customControlClicked(int row, QString name) 自定义单元格控件点击信号。 row:行索引;name:控件名称。 void

UIGQTreeView

UIGQTreeView 适合目录、分组、配置树和层级数据,支持表头样式、项样式、行高和滚动条主题。

UIGQTreeView* tree = new UIGQTreeView(parent);
tree->setThemeName("DefaultTree");
tree->setItemHeight(30);
tree->setScrollbarSize(false, 12);
tree->setModel(model);

常用接口:

接口 说明 参数 返回值
setModel(QAbstractItemModel* model) 设置树数据模型。 model:Qt 数据模型。 void
expand(const QModelIndex& index) 展开节点。 index:节点索引。 void
collapse(const QModelIndex& index) 折叠节点。 index:节点索引。 void
expandAll() 展开全部节点。 void
collapseAll() 折叠全部节点。 void
setHeaderHidden(bool hide) 设置是否隐藏表头。 hide:是否隐藏。 void
setItemHeight(int height) 设置节点行高。 height:行高像素。 void
setScrollbarSize(bool isHorizontal, int size) 设置滚动条厚度。 isHorizontal:是否水平;size:厚度。 void

UIGQListView

UIGQListView 适合结果列表、消息列表和卡片式条目。可配置 item 模板、宽高、选中状态和滚动条。

UIGQListView* list = new UIGQListView(parent);
list->setThemeName("DefaultListView");
list->setItemHeight(48);
list->setItemWidth(280);
list->setEnableSelection(true);
list->setModel(model);

常用接口:

接口 说明 参数 返回值
setModel(QAbstractItemModel* model) 设置列表数据模型。 model:Qt 数据模型。 void
setItemHeight(int height) 设置条目高度。 height:高度像素。 void
setItemWidth(int width) 设置条目宽度。 width:宽度像素。 void
setEnableSelection(bool enabled) 设置是否允许选中。 enabled:是否允许。 void
setCurrentIndex(const QModelIndex& index) 设置当前项。 index:模型索引。 void
currentIndex() const 获取当前项。 QModelIndex
clicked(const QModelIndex& index) 条目点击信号。 index:模型索引。 void

UIGQList

UIGQList 是更轻量的列表封装,适合简单项集合。

接口 说明 参数 返回值
addItem(const QString& text) 添加文本项。 text:文本。 void
addItems(const QStringList& labels) 批量添加文本项。 labels:文本列表。 void
clear() 清空列表。 void
setCurrentRow(int row) 设置当前行。 row:行索引。 void
currentRow() const 获取当前行。 int
itemClicked(QListWidgetItem* item) 项点击信号。 item:点击项。 void

UIGQPropertyList

UIGQPropertyList 适合属性编辑和对象参数展示,继承滚动区域能力。

接口 说明 参数 返回值
setThemeName(const QString& themeName) 设置属性表主题。 themeName:主题名。 void
setWidget(QWidget* widget) 设置属性内容容器。 widget:内容控件。 void
setWidgetResizable(bool resizable) 内容是否跟随视口。 resizable:是否自适应。 void
setScrollbarSize(bool isHorizontal, int size) 设置滚动条厚度。 isHorizontal:是否水平;size:厚度。 void

使用建议

  • 大数据列表保持 Qt Model/View 分层,WidgetKit 负责外观和交互一致性。
  • 表格中需要操作按钮时,优先使用自定义列控件,避免把所有操作塞进文本。
  • 横向内容较宽时显式配置水平滚动条主题,避免宽列被挤压。
  • 属性面板适合低频配置,不建议承载大量实时数据。