目录
一、QLinstWidget-用于显示项目列表的窗口部件:
1.1QLinstWidget介绍:
1.2属性介绍:
1.3常用方法介绍:
1.4信号介绍:
1.5实例演示:
二、QTableWidget- 用于显示二维数据表:
2.1QTableWidget介绍:
2.2常用方法介绍:
2.3 信号介绍:
一、QLinstWidget-用于显示项目列表的窗口部件:
1.1QLinstWidget介绍:
- QListWidget提供了一个用于显示项目列表的窗口部件。
- QListWidget 继承自 QListView,并且使用一个简单的接口来管理列表中的项。
- 它适合于那些需要一个列表框,但又不想使用 QListView 和 QAbstractItemModel 的复杂接口的情况。
1.2属性介绍:
count
- 返回列表中项目的数量。
- count()
currentItem
- 获取当前选中的项目。
- currentItem() const
- setCurrentItem(QListWidgetItem *item)
currentRow
- 获取当前选中项目的行号。如果未选中返回-1。
- currentRow() const
- setCurrentRow(int row)
selectionMode
- 设置选择模式,可以是单选、多选等。
- selectionMode() const
- setSelectionMode(QAbstractItemView::SelectionMode mode)
item
- 获取指定行的项目。
- item(int row) const
itemWidget
- 获取项目关联的窗口小部件。
- itemWidget(QListWidgetItem *item) const
- setItemWidget(QListWidgetItem *item, QWidget *widget)
sortingEnabled
- 设置是否启用项目排序。
- isSortingEnabled() const
- setSortingEnabled(bool enable)
dropIndicatorPosition
- 设置或获取拖放操作中的指示位置。
- dropIndicatorPosition() const
1.3常用方法介绍:
addItem
- 向列表中添加一个项目。
- void addItem(const QString &label)
- void addItem(QListWidgetItem *item)
currentItem
- 获取/设置当前选中的项目。
- void currentItem()
- setCurrentItem(QListWidgetItem *item)
insertItem
- 在指定行插入一个项目。
- void insertItem(int row, const QString &label)
- void insertItem(int row, QListWidgetItem *item)
item
- 获取指定行的项目。
- item(int row) const
sortItems
- 对列表中的项目进行排序。
- void sortItems(Qt::SortOrder order = Qt::AscendingOrder)
clear
- 移除列表中的所有项目。
- clear();
takeItem
- 从列表中移除指定行的项目并返回该项目。
- QListWidgetItem* takeItem(int row)
1.4信号介绍:
currentItemChanged 当前选中项目发生变化时发出此信号。 itemActivated 用户激活项目(例如通过双击或按 Enter 键)时发出此信号。 itemChanged 项目内容发生变化时发出此信号。 itemDoubleClicked 用户双击项目时发出此信号。 itemEntered 鼠标指针进入项目时发出此信号。 itemClicked 用户单击项目时发出此信号。 currentRowChanged 当前选中的行发生变化时发出此信号。参数是新的当前选中行的行号。
1.5实例演示:
Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); } Widget::~Widget() { delete ui; } //展示当前选中项,如果选中,显示当前高亮项 void Widget::on_listWidget_itemClicked(QListWidgetItem *item) { if(item==nullptr) return; ui->label->setText("当前选中项:"+item->text()); } //添加项目,获取lineedit中的字段,添加到窗口作为新项目 void Widget::on_pushButton_clicked() { const QString& str=ui->lineEdit->text(); ui->listWidget->addItem(str); ui->lineEdit->clear(); } //删除项目,先获取选中项目的行号,然后通过行号删除项目 void Widget::on_pushButton_2_clicked() { int num=ui->listWidget->currentRow(); if(num<0) return; ui->listWidget->takeItem(num); }
二、QTableWidget- 用于显示二维数据表:
2.1QTableWidget介绍:
- QTableWidget 是 Qt 提供的一个表格控件,用于显示二维数据表。
- 它是 QTableView 的一个子类,提供了更高级的功能,允许用户直接在表格中添加、删除和编辑项。
2.2常用方法介绍:
item
- 获取指定单元格的项目。
- QTableWidgetItem* item(int row, int column) const
setItem
- 设置指定单元格的项目。
- void setItem(int row, int column, QTableWidgetItem *item)
currentItem
- 获取当前选中的项目。
- QTableWidgetItem* currentItem() const
currentRow
- 获取当前选中项目的行号。
- int currentRow() const
currentColumn
- 获取当前选中项目的列号。
- int currentColumn() const
row
- 获取某个项所在的行。
- int row(const QTableWidgetItem *item) const
column
- 获取某个 QTableWidgetItem 所在的列。
- int column(const QTableWidgetItem *item) const
rowCount
- 获取表格的行数。
- int rowCount() const
columnCount
- 获取表格的列数。
- int columnCount() const
insertRow
- 在指定位置插入一行。
- void insertRow(int row)
insertColumn
- 在指定位置插入一列。
- int column(const QTableWidgetItem *item) const
removeRow
- 移除指定行。
- void removeRow(int row)
removeColumn
- 移除指定列。
- void removeColumn(int column)
setHorizontalHeaderItem
- 设置水平表头的单元格项目。
- void setHorizontalHeaderItem(int column, QTableWidgetItem *item)
setVerticalHeaderItem
- 设置垂直表头的单元格项目。
- void setVerticalHeaderItem(int row, QTableWidgetItem *item)
2.3 信号介绍:
cellClicked(int row, int column)
- 当用户单击单元格时触发。
row
:被单击的单元格的行号。column
:被单击的单元格的列号。cellDoubleClicked(int row, int column)
- 当用户双击单元格时触发。
row
:被双击的单元格的行号。column
:被双击的单元格的列号。cellEntered(int row, int column)
- 当鼠标进入单元格时触发。
row
:鼠标进入的单元格的行号。column
:鼠标进入的单元格的列号。currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn)
- 当当前选中的单元格发生变化时触发。
currentRow
:当前选中的单元格的行号。currentColumn
:当前选中的单元格的列号。previousRow
:之前选中的单元格的行号。previousColumn
:之前选中的单元格的列号。