【Qt5.8】Qt5.8中QTableWidget 类介绍

00. 目录

01. QTableWidget介绍

QTableWidget是基于QTableView的一个默认的视图模型;它用于显示一个标准的表格。表格中每一个项通过QTableWidgetItem来实现。

头文件:#include
qmake:QT += widgets
继承自:QTableView

如果你想要一个使用你自己的数据模型的表,你应该使用QTableView而不是这个类。

可以使用指定的行数和列数构造一个QTableWidget对象。

tableWidget = new QTableWidget(12, 3, this);

或者可以先构造一个QTableWidget对象,然后指定其行数和列数。

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

表格中的每一个项可以在表格之外创建,没有父对象,然后使用setItem()插入到表格中。

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

我们可以构造一个带有图标和对齐文本的表项,并将其用作特定列的标题


      QTableWidgetItem *cubesHeaderItem = new QTableWidgetItem(tr("Cubes"));
      cubesHeaderItem->setIcon(QIcon(QPixmap(":/Images/cubed.png")));
      cubesHeaderItem->setTextAlignment(Qt::AlignVCenter);

02. 成员函数简介

1、默认构造函数

QTableWidget::QTableWidget(QWidget * parent = 0)

2、使用给定的行数rows和列数columns,构造表格

QTableWidget::QTableWidget(int rows,int columns, QWidget * parent = 0)

3、析构函数

QTableWidget::~QTableWidget()

4、当位于第row行第column列的单元格被激活时,触发该信号。如果该单元格可以编辑则不触发。

void QTableWidget::cellActivated(int row,int column) [signal] 信号函数

5、当位于第row行第column列的单元格中的数据发生变化时,触发该信号

void QTableWidget::cellChanged(int row,int column)[signal] 信号函数

6、当位于第row行第column列的单元格被点击时,触发该信号。

void QTableWidget::cellClicked(int row,int column)[signal] 信号函数

7、当位于第row行第column列的单元格被双击时,触发该信号。

void QTableWidget::cellDoubleClicked(int row,int column)[signal] 信号函数

8、当位于第row行第column列的单元格获取鼠标光标时,触发该信号。需要设置表格setMouseTracking(true),默认是false

void QTableWidget::cellEntered(int row,int column)[signal] 信号函数

9、当位于第row行第column列的单元格被按下时,触发该信号。

void QTableWidget::cellPressed(int row,int column)[signal] 信号函数

10、返回位于第row行第column列的单元格中窗口部件。

QWidget * QTableWidget::cellWidget(int row,int column) const

11、删除表格中所有的项(QTableWidgetItem),但是表格还在。

void QTableWidget::clear() [slot]槽函数

12、删除表格中所有的项(QTableWidgetItem),不包括表头中的,但是表格还在

void QTableWidget::clearContents() [slot]槽函数

13、关闭指定item的可编辑状态

void QTableWidget::closePersistentEditor(QTableWidgetItem * item)

14、返回指定item在第几列。

int QTableWidget::column(constQTableWidgetItem * item) const

15、 当单元格的焦点变化时,发射该信号。currentRow当前行currentColumn当前列;int previousRow之前的行 int previousColumn之前的列

void QTableWidget::currentCellChanged(int currentRow,int currentColumn, int previousRow,int previousColumn) [signal] 信号函数

16、返回当前单元格在第几列

int QTableWidget::currentColumn() const

17、 返回当前的单元格中的item

QTableWidgetItem * QTableWidget::currentItem() const

18、当单元格的焦点变化时,发射该信号。current当前的项item;previous之前的项item

void QTableWidget::currentItemChanged(QTableWidgetItem * current,QTableWidgetItem * previous)[signal] 信号函数

19、返回当前单元格在第几行。

int QTableWidget::currentRow() const

20、当向该表格中拖放时,触发该事件

void QTableWidget::dropEvent(QDropEvent * event) [virtual protected]

21、如果指定的单元格能处理拖放中的数据,则返回真,否则返回假

bool QTableWidget::dropMimeData(int row,int column, const QMimeData * data,Qt::DropAction action)[virtual protected]

22、如果item能编辑,开始编辑该项。

void QTableWidget::editItem(QTableWidgetItem * item)

23、返回匹配text的项的列表。

QList<QTableWidgetItem *> QTableWidget::findItems(constQString & text, Qt::MatchFlags flags) const

24、返回第column列的表头项,如果没有则返回0。

QTableWidgetItem * QTableWidget::horizontalHeaderItem(int column) const

25、返回指定item的QModelIndex(QAbstractItemModel的引索)

QModelIndex QTableWidget::indexFromItem(QTableWidgetItem * item) const [protected]

26、在第column列插入一个空列。

void QTableWidget::insertColumn(int column)

27、 在第row行插入一个空行。

void QTableWidget::insertRow(int row)

28、 返回在第row行第column列的项,如果不存在返回0。

QTableWidgetItem * QTableWidget::item(int row,int column) const

29、 项被激活,发射信号。

void QTableWidget::itemActivated(QTableWidgetItem * item)[signal] 信号函数

30、返回指定坐标point处的项,如果该坐标处没有项则返回0。该坐标相对于表格窗口。

QTableWidgetItem * QTableWidget::itemAt(constQPoint & point) const

31、同上。QPoint(x,y)

QTableWidgetItem * QTableWidget::itemAt(int ax,int ay) const

32、 当item的数值发生改变时,触发该信号

void QTableWidget::itemChanged(QTableWidgetItem * item)[signal] 信号函数

33、当item被点击时,触发该信号

void QTableWidget::itemClicked(QTableWidgetItem * item)[signal] 信号函数

34、当item被双击时,触发该信号

void QTableWidget::itemDoubleClicked(QTableWidgetItem * item)[signal] 信号函数

35、当编辑item时(获取鼠标)时,触发该信号。需要设置表格setMouseTracking(true),默认是false

void QTableWidget::itemEntered(QTableWidgetItem * item)

36、 返回给定index的项,QModelIndex指向数据?

QTableWidgetItem * QTableWidget::itemFromIndex(constQModelIndex & index) const [protected]

37、当item被按下时,触发该信号

void QTableWidget::itemPressed(QTableWidgetItem * item)[signal] 信号函数

38、返回项的原型,通常用于克隆项

const QTableWidgetItem * QTableWidget::itemPrototype() const

39、当被选中的item发生改变时,触发该信号。

void QTableWidget::itemSelectionChanged()[signal] 信号函数

40、返回包含MIME data数据所有的项。

QList<QTableWidgetItem *> QTableWidget::items(constQMimeData * data) const  [protected]

41、返回项列表中MIME数据的容器

QMimeData * QTableWidget::mimeData(constQList<QTableWidgetItem *> items) const[protected]

42、 返回表格中所有项的一个MIME数据

QStringList QTableWidget::mimeTypes() const[protected

43、 开始编辑item

void QTableWidget::openPersistentEditor(QTableWidgetItem * item)

44、 删除第row行第column列的窗口部件

void QTableWidget::removeCellWidget(int row,int column)

45、 删除第column列

void QTableWidget::removeColumn(int column)[slot]

46、删除第row行

void QTableWidget::removeRow(int row)[slot]

47、返回指定item所在的行数

int QTableWidget::row(constQTableWidgetItem * item) const[slot]

48、指定的item比较突显出来,方便辨认。

void QTableWidget::scrollToItem(constQTableWidgetItem * item, QAbstractItemView::ScrollHint hint = EnsureVisible)[slot]

49、返回选中的项的列表

QList<QTableWidgetItem *> QTableWidget::selectedItems()

50、返回选择范围

QList<QTableWidgetSelectionRange> QTableWidget::selectedRanges() const

51、将widget窗口部件放到第row行第column列。

void QTableWidget::setCellWidget(int row,int column, QWidget * widget)

52、将位于第row行第column列的项设置为当前项(获取焦点)

void QTableWidget::setCurrentCell(int row,int column)

53、设置指定的item为当前项

void QTableWidget::setCurrentItem(QTableWidgetItem * item)

54、将第column列的水平表头项设为item

void QTableWidget::setHorizontalHeaderItem(int column,QTableWidgetItem * item)

55、 使用一组标签设置水平表头

void QTableWidget::setHorizontalHeaderLabels(constQStringList & labels)

56、设置第row行第column列的项;注意如果使能排序,行位置会变化

void QTableWidget::setItem(int row,int column, QTableWidgetItem * item)

57、通过item设置表的标准项模型。

void QTableWidget::setItemPrototype(constQTableWidgetItem * item)

58、选择或取消范围

void QTableWidget::setRangeSelected(constQTableWidgetSelectionRange & range, bool select)

59、设置第row行的垂直表头的项

void QTableWidget::setVerticalHeaderItem(int row,QTableWidgetItem * item)

60、 通过一组标签设置垂直表头

void QTableWidget::setVerticalHeaderLabels(constQStringList & labels)

61、根据规则order设置第column列的所有行

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

62、 返回该表支持的所有拖放操作

Qt::DropActions QTableWidget::supportedDropActions() const

63、 将项从第column列的水平表头中去除,但不删除它(不delete item)。
QTableWidgetItem * QTableWidget::takeHorizontalHeaderItem(int column)

64、将项从第row行第column列去除,但不删除它

QTableWidgetItem * QTableWidget::takeItem(int row,int column)

65、返回垂直表头中第row行的项

QTableWidgetItem * QTableWidget::verticalHeaderItem(int row) const

66、返回给定逻辑列的可视列。

int QTableWidget::visualColumn(int logicalColumn) const

67、返回item所占的单元格的位置和大小

QRect QTableWidget::visualItemRect(constQTableWidgetItem * item) const

68、返回给定逻辑行的可视行。

int QTableWidget::visualRow(int logicalRow) const

© 版权声明
THE END
喜欢就支持一下吧
点赞124 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容