㈠ Qt模型视图框架:QTableWidget、QTableView、QListWidgetItem
QTableWidget
QTableWidget 是一个标准的表格小部件,用于显示由 QTableWidgetItem 提供的项目。
常用信号包括:
- cellActivated(int row, int column): 当行和列指定的单元格被激活时发出此信号。
- cellChanged(int row, int column): 当由行和列指定的单元格中的项目数据发生更改时,发出此信号。
- cellClicked(int row, int column): 每当单击表格中的单元格时,发出此信号。
- cellDoubleClicked(int row, int column): 每当双击表格中的单元格时,发出此信号。
- cellEntered(int row, int column): 当鼠标光标进入单元格时发出此信号。
- cellPressed(int row, int column): 每当按下表格中的单元格时,发出此信号。
- currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn): 当前单元格发生变化时,发出此信号。
- currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous): 当前项目发生变化时,发出此信号。
- itemActivated(QTableWidgetItem *item): 当指定的项目被激活时发出此信号。
- itemChanged(QTableWidgetItem *item): 每当 item 的数据发生变化时,发出此信号。
- itemClicked(QTableWidgetItem *item): 每当单击表中的项目时,发出此信号。
- itemDoubleClicked(QTableWidgetItem *item): 每当双击表中的项目时,发出此信号。
- itemEntered(QTableWidgetItem *item): 当鼠标光标进入一个项目时,发出此信号。
- itemPressed(QTableWidgetItem *item): 每当按下表中的项目时,发出此信号。
- itemSelectionChanged(): 只要选择发生变化,就发出此信号。
常用函数包括:
- clear()/clearContents(): 清除视图中的所有项目,删除所有选择和标题。
- insertColumn(int column)/insertRow(int row): 插入空列/行。
- removeColumn(int column)/removeRow(int row): 从表中删除列/行。
- scrollToItem(const QTableWidgetItem *item): 如有必要,滚动视图以确保项目可见。
- column(const QTableWidgetItem *item)/row(const QTableWidgetItem *item): 获取item所在的列/行。
- findItems(const QString &text, Qt::MatchFlags flags): 使用给定的标志查找与文本匹配的项目。
- indexFromItem(const QTableWidgetItem *item): 返回与给定项目关联的 QModelIndex。
- itemFromIndex(const QModelIndex &index): 返回指向与给定索引关联的 QTableWidgetItem 的指针。
- itemAt(const QPoint &point): 返回指向给定点的项目的指针。
- itemPrototype(): 设置表的项目原型为指定的项目。
- items(const QMimeData *data): 返回指向包含在数据对象中的项目的指针列表。
- removeCellWidget(int row, int column): 设置要在给定行和列的单元格中显示的给定小部件,并将小部件的所有权传递给表格。
- selectedItems(): 返回所有选定项目的列表。
- selectedRanges(): 返回所有选定范围的列表。
- setHorizontalHeaderItem(int column, QTableWidgetItem *item): 设置标题 item。
- setHorizontalHeaderLabels(const QStringList &labels): 设置标题标签。
- sortItems(int column, Qt::SortOrder order): 根据列和顺序对表小部件中的所有行进行排序。
- takeHorizontalHeaderItem(int column): 从标题中删除列中的水平标题项目而不删除item。
- takeItem(int row, int column): 从表中删除行和列的项目而不删除item。
- visualItemRect(const QTableWidgetItem *item): 返回 item 处的 item 占据的视口上的矩形。
QTableView
QTableView 实现了表格视图,用于显示模型中的项目。
属性成员包括:
- cornerButtonEnabled : bool: 保存左上角的按钮是否启用,默认为 true。
- gridStyle : Qt::PenStyle: 保存绘制网格时使用的样式。
- showGrid : bool: 保存是否显示网格。
- sortingEnabled : bool: 保存是否启用排序,默认值为 false。
- wordWrap : bool: 包含项目文本自动换行策略,默认为 true。
常用函数包括:
- hideColumn(int column)/hideRow(int row): 隐藏列/行。
- resizeColumnToContents(int column)/resizeColumnsToContents(): 根据用于呈现列中每个项目的委托的大小提示调整列/行的大小。
- selectColumn(int column)/selectRow(int row): 选择列/行。
- sortByColumn(int column, Qt::SortOrder order): 按给定列中的值和顺序对模型进行排序。
- clearSpans(): 删除表视图中的所有行和列跨度。
- columnAt(int x)/rowAt(int y): 返回内容坐标中给定 x 坐标 x 所在的列/行。
- columnViewportPosition(int column)/rowViewportPosition(int row): 返回给定列的内容坐标中的 x 坐标/
返回给定行内容坐标中的 y 坐标。
- columnWidth(int column)/rowHeight(int row): 列的宽度/行的高度。
QListWidgetItem
QListWidgetItem 代表 QListWidget 中的单个项目,每个项目可以包含多条信息,并将适当地显示它们。
常用成员函数包括:
- background()/setBackground(const QBrush &brush): 获取或设置背景画刷。
- checkState()/setCheckState(Qt::CheckState state): 获取或设置选中状态。
- clone(): 创建项目的副本。
- data(int role)/setData(int role, const QVariant &value): 获取或设置角色的项目数据。
- flags()/setFlags(Qt::ItemFlags flags): 返回或设置此项目的项目标志。
- foreground()/setForeground(const QBrush &brush): 获取或设置前景画刷。
- setIcon(const QIcon &icon)/icon(): 设置或获取图标。
- setHidden(bool hide)/isHidden(): 设置或获取是否隐藏。
- isSelected()/setSelected(bool select): 设置或获取是否选中。
- listWidget(): 获取所属的QListWidget。
- setStatusTip(const QString &statusTip): 设置列表项的状态提示。
- setToolTip(const QString &toolTip): 设置列表项的工具提示。