文章目录
- Qt
- Qt多元素控件
- List Widget
- Table Widget
- Tree Widget
 
 
Qt

   
Qt多元素控件
List Widget
使用 QListWidget 能够显示一个纵向的列表。
| 属性 | 说明 | 
|---|---|
| currentRow | 当前被选中的是第几行。 | 
| count | 一共有多少行。 | 
| sortingEnabled | 是否允许排序。 | 
| isWrapping | 是否允许换行。 | 
| itemAlignment | 元素的对齐方式。 | 
| selectRectVisible | 被选中的元素矩形是否可见。 | 
| spacing | 元素之间的间隔。 | 
| 方法 | 说明 | 
|---|---|
| addItem(const QString& label)、addItem(QListWidgetItem *item) | 列表中添加元素。 | 
| currentItem() | 返回 QListWidgetItem*,表示当前选中的元素。 | 
| setCurrentItem(QListWidgetItem* item) | 设置选中哪个元素。 | 
| setCurrentRow(int row) | 设置选中第几行的元素。 | 
| insertItem(const QString& label, int row)、insertItem(QListWidgetItem *item, int row) | 在指定的位置插入元素。 | 
| item(int row) | 返回 QListWidgetItem*,表示第 row 行的元素。 | 
| takeItem(int row) | 删除指定行的元素,返回 QListWidgetItem*,表示是哪个元素被删除了。 | 
| 信号 | 说明 | 
|---|---|
| currentItemChanged(QListWidgetItem* current, QListWidgetItem* old) | 选中不同元素时会触发。参数是当前选中的元素和之前选中的元素。 | 
| currentRowChanged(int) | 选中不同元素时会触发。参数是当前选中元素的行数。 | 
| itemClicked(QListWidgetItem* item) | 点击某个元素时触发。 | 
| itemDoubleClicked(QListWidgetItem* item) | 双击某个元素时触发。 | 
| itemEntered(QListWidgetItem* item) | 鼠标进入元素时触发。 | 
在上述介绍中,涉及到一个关键的类 ——QListWidgetItem。这个类表示 QListWidget 中的一个元素。其核心方法本质上是由 “文本 + 图标” 构成的。
| 方法 | 说明 | 
|---|---|
| setFont | 设置字体。 | 
| setIcon | 设置图标。 | 
| setHidden | 设置隐藏。 | 
| setSizeHint | 设置尺寸。 | 
| setSelected | 设置是否选中。 | 
| setText | 设置文本。 | 
| setTextAlignment | 设置文本对齐方式。 | 
- 代码示例:创建一个 QListWidget,并且我们可以在里面进行添加元素和删除元素的操作。

   
- 连接槽函数,addItem()的作用就是向 QListWidget 控件中添加 QListWidgteItem 元素;takeItem 作用是删除控件中的元素。

Table Widget
Table Widget 使用 QTableWidget 表示一个表格控件。一个表格中包含若干行,每一行又包含若干列。表格中的每个单元格,是一个 QTableWidgetItem 对象。
| 方法 | 说明 | 
|---|---|
| item(int row, int column) | 根据行数和列数获取指定的 QTableWidgetItem*。 | 
| setItem(int row, int column, QTableWidget*) | 根据行数和列数设置表格中的元素。 | 
| currentItem() | 返回被选中的元素 QTableWidgetItem*。 | 
| currentRow() | 返回被选中元素是第几行。 | 
| currentColumn() | 返回被选中元素是第几列。 | 
| row(QTableWidgetItem*) | 获取指定 item 是第几行。 | 
| column(QTableWidgetItem*) | 获取指定 item 是第几列。 | 
| rowCount() | 获取行数。 | 
| columnCount() | 获取列数。 | 
| insertRow(int row) | 在第 row 行处插入新行。 | 
| insertColumn(int column) | 在第 column 列插入新列。 | 
| removeRow(int row) | 删除第 row 行。 | 
| removeColumn(int column) | 删除第 column 列。 | 
| setHorizontalHeaderItem(int column, QTableWidget*) | 设置指定列的表头。 | 
| setVerticalHeaderItem(int row, QTableWidget*) | 设置指定行的表头。 | 
QTableWidgetItem 核心方法:
| 方法 | 说明 | 
|---|---|
| row() | 获取当前是第几行。 | 
| column() | 获取当前是第几列。 | 
| setText(const QString&) | 设置文本。 | 
| setTextAlignment(int) | 设置文本对齐。 | 
| setIcon(const QIcon&) | 设置图标。 | 
| setSelected(bool) | 设置被选中。 | 
| setSizeHints(const QSize&) | 设置尺寸。 | 
| setFont(const QFont&) | 设置字体。 | 
| 信号 | 说明 | 
|---|---|
| cellClicked(int row, int column) | 点击单元格时触发。 | 
| cellDoubleClicked(int row, int column) | 双击单元格时触发。 | 
| cellEntered(int row, int column) | 鼠标进入单元格时触发。 | 
| currentCellChanged(int row, int column, int previousRow, int previousColumn) | 选中不同单元格时触发。 | 
- 创建表格控件QTableWidget。

- 使用setItem向表格控件中添加元素。
  
Tree Widget
Tree Widget 使用 QTreeWidget 表示一个树形控件。里面的每个元素都是一个 QTreeWidgetItem,每个 QTreeWidgetItem 可以包含多个文本和图标,每个文本 / 图标为一个列。
可以给 QTreeWidget 设置顶层节点(顶层节点可以有多个),然后再给顶层节点添加子节点,从而构成树形结构。这种结构非常适合展示具有层次关系的数据,比如文件系统目录结构、组织结构图等。
| 方法 | 说明 | 
|---|---|
| clear | 清空所有子节点 | 
| addTopLevelItem(QTreeWidgetItem* item) | 新增顶层节点 | 
| topLevelItem(int index) | 获取指定下标的顶层节点. | 
| topLevelItemCount() | 获取顶层节点个数 | 
| indexOfTopLevelItem(QTreeWidgetItem* item) | 查询指定节点是顶层节点中的下标 | 
| takeTopLevelItem(int index) | 删除指定的顶层节点. 返回 QTreeWidgetItem* 表示被删除的元素 | 
| currentItem() | 获取到当前选中的节点, 返回 QTreeWidgetItem* | 
| setCurrentItem(QTreeWidgetItem* item) | 选中指定节点 | 
| setExpanded(bool) | 展开/关闭节点 | 
| setHeaderLabel(const QString& text) | 设置 TreeWidget 的 header 名称。 | 
| 信号 | 说明 | 
|---|---|
| currentItemChanged (QTreeWidgetItem* current, QTreeWidgetItem* old) | 切换选中元素时触发 | 
| itemClicked (QTreeWidgetItem* item, int col) | 点击元素时触发 | 
| itemDoubleClicked (QTreeWidgetItem* item, int col) | 双击元素时触发 | 
| itemEntered (QTreeWidgetItem* item, int col) | 鼠标标进⼊时触发 | 
| itemExpanded (QTreeWidgetItem* item) | 元素被展开时触发 | 
| itemCollapsend (QTreeWidgetItem* item) | 元素被折叠时触发。 | 
QTreeWidgetItem 核心属性
| 属性 | 说明 | 
|---|---|
| text | 持有的文本 | 
| textAlignment | 文本对齐方式 | 
| icon | 持有的图表 | 
| font | 文本字体 | 
| hidden | 是否隐藏 | 
| disabled | 是否禁用 | 
| expand | 是否展开 | 
| sizeHint | 尺寸大小 | 
| selected | 是否选中 | 
QTreeWidgetItem 核心方法
| 方法 | 说明 | 
|---|---|
| addChild (QTreeWidgetItem* child) | 新增子节点 | 
| childCount () | 子节点的个数 | 
| child (int index) | 获取指定下标的子节点,返回 QTreeWidgetItem* | 
| takeChild (int index) | 删除对应下标的子节点 | 
| removeChild (QTreeWidgetItem* child) | 删除对应的子节点 | 
| parent () | 获取该元素的父节点 | 
-  创建QTreeWidget树形控件。 
  
 
-  添加树形控件的层级元素。 




















