文章目录
- Qt
-
- Qt多元素控件
-
- [List Widget](#List Widget)
- [Table Widget](#Table Widget)
- [Tree Widget](#Tree Widget)
Qt
Qt多元素控件
使用 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 使用 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 使用 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树形控件。
-
添加树形控件的层级元素。