计算机系统应用教程网站

网站首页 > 技术文章 正文

Qt模型视图框架:QTableWidget、QTableView、QListWidgetItem

btikc 2024-10-20 05:04:40 技术文章 7 ℃ 0 评论

QTableWidget

一、描述

标准表格小部件。QTableWidget 中的项目由 QTableWidgetItem 提供。

使用方式:

tableWidget = new QTableWidget(12, 3, this);
tableWidget = new QTableWidget(this);
tableWidget->setRowCount(10);
tableWidget->setColumnCount(5);

或:

QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg((row+1)*(column+1)));
tableWidget->setItem(row, column, newItem);

二、成员函数

2.1、信号

1、void cellActivated(int row, int column)

当行和列指定的单元格被激活时发出此信号。

2、void cellChanged(int row, int column)

每当由行和列指定的单元格中的项目数据发生更改时,就会发出此信号。

3、void cellClicked(int row, int column)

每当单击表格中的单元格时,就会发出此信号。 指定的行和列是单击的单元格。

4、void cellDoubleClicked(int row, int column)

每当双击表格中的单元格时,就会发出此信号。 指定的行和列是双击的单元格。

5、void cellEntered(int row, int column)

当鼠标光标进入单元格时会发出此信号。 单元格由行和列指定。

此信号仅在打开 mouseTracking 或在移动到项目时按下鼠标按钮时发出。

6、void cellPressed(int row, int column)

每当按下表格中的单元格时,就会发出此信号。指定的行和列是被按下的单元格。

7、void currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn)

当前单元格发生变化时,就会发出此信号。previousRow 和 previousColumn 指定的单元格是之前获得焦点的单元格,currentRow 和 currentColumn 指定的单元格是新的当前单元格。

8、void currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous)

当前项目发生变化时都会发出此信号。previous是之前获得焦点的项,current是新的当前项。

9、void itemActivated(QTableWidgetItem *item)

当指定的项目被激活时发出此信号。

10、void itemChanged(QTableWidgetItem *item)

每当 item 的数据发生变化时,就会发出此信号。

11、void itemClicked(QTableWidgetItem *item)

每当单击表中的项目时都会发出此信号。

12、void itemDoubleClicked(QTableWidgetItem *item)

每当双击表中的项目时都会发出此信号。

13、void itemEntered(QTableWidgetItem *item)

当鼠标光标进入一个项目时发出这个信号。

此信号仅在打开 mouseTracking 或在移动到项目时按下鼠标按钮时发出。

14、void itemPressed(QTableWidgetItem *item)

每当按下表中的项目时,就会发出此信号。

15、void itemSelectionChanged()

只要选择发生变化,就会发出该信号。

2.2、函数

1、void clear()、void clearContents()

clear()删除视图中的所有项目。 这也将删除所有选择和标题。 如果不想删除标题,请使用 clearContents()。 表的尺寸保持不变。

2、void insertColumn(int column) / void insertRow(int row)

插入空列/行。

3、void removeColumn(int column) / void removeRow(int row)

从表中删除列列/行。

4、void scrollToItem(const QTableWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)

如有必要,滚动视图以确保项目可见。hint 指定操作后项目应位于的位置。

5、int column(const QTableWidgetItem *item) / int row(const QTableWidgetItem *item)

获取item所在的列/行。

6、QList<QTableWidgetItem *> findItems(const QString &text, Qt::MatchFlags flags)

使用给定的标志查找与文本匹配的项目。

7、QModelIndex indexFromItem(const QTableWidgetItem *item)

返回与给定项目关联的 QModelIndex。

8、QTableWidgetItem * itemFromIndex(const QModelIndex &index)

返回指向与给定索引关联的 QTableWidgetItem 的指针。

9、QTableWidgetItem * itemAt(const QPoint &point)

返回指向给定点的项目的指针。

10、const QTableWidgetItem * itemPrototype()

void setItemPrototype(const QTableWidgetItem *item)

将表的项目原型设置为指定的项目。

表格小部件在需要创建新表格项目时将使用项目原型克隆功能。表拥有原型的所有权。

11、QList<QTableWidgetItem *> items(const QMimeData *data)

返回指向包含在数据对象中的项目的指针列表。如果该对象不是由同一进程中的 QTreeWidget 创建的,则列表为空。

12、void removeCellWidget(int row, int column)

void setCellWidget(int row, int column, QWidget *widget)
QWidget * cellWidget(int row, int column)

设置要在给定行和列的单元格中显示的给定小部件,将小部件的所有权传递给表格。

如果单元格小部件 A 被单元格小部件 B 替换,则单元格小部件 A 将被删除。

例如,在下面的代码片段中,QLineEdit 对象将被删除。

setCellWidget(row, column, new QLineEdit);
...
setCellWidget(row, column, new QTextEdit);

13、QList<QTableWidgetItem *> selectedItems()

返回所有选定项目的列表。此函数返回指向所选单元格内容的指针列表。 使用 selectedIndexes() 函数检索包括空单元格在内的完整选择。

14、QList<QTableWidgetSelectionRange> selectedRanges()

返回所有选定范围的列表。

15、void setHorizontalHeaderItem(int column, QTableWidgetItem *item)

void setVerticalHeaderItem(int row, QTableWidgetItem *item)

设置标题 item。如有必要,会增加列/行数以适合该项目。前一个标题项目(如果有)被删除。

16、void setHorizontalHeaderLabels(const QStringList &labels)

void setVerticalHeaderLabels(const QStringList &labels)

设置标题标签。

17、void setRangeSelected(const QTableWidgetSelectionRange &range, bool select)

根据选择选择或取消选择范围。

18、void sortItems(int column, Qt::SortOrder order = Qt::AscendingOrder)

根据列和顺序对表小部件中的所有行进行排序。

19、QTableWidgetItem * takeHorizontalHeaderItem(int column)

QTableWidgetItem * takeVerticalHeaderItem(int row)

从标题中删除列中的水平标题项目而不删除item。

20、QTableWidgetItem * takeItem(int row, int column)

从表中删除行和列的项目而不删除item。

21、QRect visualItemRect(const QTableWidgetItem *item)

返回 item 处的 item 占据的视口上的矩形。

【领QT开发教程学习资料,点击下方链接莬费领取↓↓,先码住不迷路~】

点击这里:「链接」


QTableView

一、描述

QTableView 实现了表格视图,用于显示模型中的项目。

二、属性成员

1、cornerButtonEnabled : bool

该属性保存左上角的按钮是否启用。默认为 true。

如果此属性为 true,则启用表视图左上角的按钮。单击此按钮将选择表格视图中的所有单元格。

2、gridStyle : Qt::PenStyle

此属性保存绘制网格时使用的样式。

3、showGrid : bool

此属性保存是否显示网格。

4、sortingEnabled : bool

此属性保存是否启用排序。默认值为false。

5、wordWrap : bool

此属性包含项目文本自动换行策略。 默认为 true。

三、成员函数

1、void hideColumn(int column) / void hideRow(int row)

  • void showColumn(int column) / void showRow(int row)
  • bool isColumnHidden(int column) / bool isRowHidden(int row)
  • void setColumnHidden(int column, bool hide) / void setRowHidden(int row, bool hide)
  • 隐藏、显示列/行。

2、void resizeColumnToContents(int column) / void resizeColumnsToContents()

void resizeRowToContents(int row) / void resizeRowsToContents()

根据用于呈现列中每个项目的委托的大小提示调整列/行的大小。

3、void selectColumn(int column) / void selectRow(int row)

选择列/行。

4、void sortByColumn(int column, Qt::SortOrder order)

按给定列中的值和顺序对模型进行排序。

5、void clearSpans()

删除表视图中的所有行和列跨度。

6、int columnAt(int x) / int rowAt(int y)

返回内容坐标中给定 x 坐标 x 所在的列/行。

7、int columnViewportPosition(int column) / int rowViewportPosition(int row)

返回给定列的内容坐标中的 x 坐标。/ 返回给定行内容坐标中的 y 坐标。

8、int columnWidth(int column) / int rowHeight(int row)

void setColumnWidth(int column, int width) / void setRowHeight(int row, int height)

列的宽度 / 行的高度。

QListWidgetItem

一、描述

QListWidgetItem 代表 QListWidget 中的单个项目。每个项目可以包含多条信息,并将适当地显示它们。

当继承 QListWidgetItem 以提供自定义项时,需要请确保在构造函数中使用等于或大于 UserType 的新类型值调用基类构造函数。

二、类型成员

1、enum QListWidgetItem::ItemType:此枚举描述用于描述列表小部件项的类型。

  • Type:列表小部件项目的默认类型。
  • UserType:自定义类型的最小值。 低于 UserType 的值由 Qt 保留。

三、成员函数

1、QBrush background() / void setBackground(const QBrush &brush)

背景画刷。

2、Qt::CheckState checkState() / void setCheckState(Qt::CheckState state)

选中状态。

  • enum Qt::CheckState
  • Qt::Unchecked:该项未选中。
  • Qt::PartiallyChecked:项目被部分选中。 如果检查了部分而非全部子项的情况。
  • Qt::Checked:项目被选中。

3、QListWidgetItem * clone()

创建项目的副本。

4、QVariant data(int role) / void setData(int role, const QVariant &value)

角色的项目数据。如果需要额外的角色或某些角色的特殊行为,请重新实现此功能。

5、Qt::ItemFlags flags() / void setFlags(Qt::ItemFlags flags)

返回此项目的项目标志。

  • enum Qt::ItemFlag
  • Qt::NoItemFlags:没有设置属性。
  • Qt::ItemIsSelectable:可以选择的。
  • Qt::ItemIsEditable:可以编辑的。
  • Qt::ItemIsDragEnabled:可以拖动。
  • Qt::ItemIsDropEnabled:可以放下。
  • Qt::ItemIsUserCheckable:可以被用户选中或取消选中。
  • Qt::ItemIsEnabled:用户可以与项目进行交互。
  • Qt::ItemIsAutoTristate:项的状态取决于其子项的状态。这可以自动管理 QTreeWidget 中父项的状态(如果所有子项都被选中,则选中,如果所有子项都未选中,则取消选中,或者如果只选中一些子项,则部分选中)。
  • Qt::ItemNeverHasChildren:该项目没有子项目。
  • Qt::ItemIsUserTristate:可以在三个独立的状态之间循环。

6、QBrush foreground() / void setForeground(const QBrush &brush)

前景画刷。

7、void setIcon(const QIcon &icon) / QIcon icon()

图标。

8、void setHidden(bool hide) / bool isHidden()

是否隐藏。

9、bool isSelected() / void setSelected(bool select)

是否选中。

10、QListWidget * listWidget()

所属的QListWidget。

11、void setStatusTip(const QString &statusTip)

将列表项的状态提示设置为 statusTip 指定的文本。需要启用 QListWidget setMouseTracking(true)才能使用此功能。

12、void setToolTip(const QString &toolTip)

将列表项的工具提示设置为工具提示指定的文本

【领QT开发教程学习资料,点击下方链接莬费领取↓↓,先码住不迷路~】

点击这里:「链接」


原文链接:https://blog.csdn.net/kenfan1647/article/details/119702702

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表