PyQt5中QTableView函数讲解

时间:2024-03-23 22:42:01

如果想熟悉QTableWidget,请参考PyQt5高级界面控件之QTableWidget(四)

原始表格现象

PyQt5中QTableView函数讲解

  • setSpan(int, int, int, int)

四个参数分别代表,起始行,列,合并的行数,全并的列数,合并的内容为起始行列的内容,如setSpan(1,1,2,2),得到的现象如下:
PyQt5中QTableView函数讲解

  • clearSpans()

清除所有合并的单元格,如下图:

PyQt5中QTableView函数讲解经过clearSpans()后变成PyQt5中QTableView函数讲解

  • columnAt(int x_coordinate)->int  
    x_coordinate为横坐标位置,函数返回x_coordnate位置是第几列,如columnAt(int 150),则返回1,如果x_coordinate超出了表的范围,返回-1,代表无效列。类似的函数有rowAt(int y_coordinate)
    PyQt5中QTableView函数讲解
  • columnCountChanged(int, int)
    两个参数分别代表先前的列数,新的列数
    每当添加或删除列时,都会调用此函数。以前的列数由oldCount指定,新的列数由newCount指定。
  • columnSpan(int row, int column)
    返回在(row, column)单元所占的列数。如下图columnSpan(1, 1)或者columnSpan(1, 2)都返回2
    PyQt5中QTableView函数讲解
    相似的函数有rowSpan(int row, int column)
  • columnViewportPosition(int column) -> int
    返回column列所对应的坐标系的x值,如columnViewportPosition(1),则返回100
    PyQt5中QTableView函数讲解
    类似的函数有rowViewportPosition(int row)->int
  • columnWidth(int column)-> int
    返回column列的宽度,如columnwidth(1),返回100.
    类似的函数有rowHeight(int row), 设置列宽和行高的函数分别为setColumnWidth(int column, int width), setRowHeight(int row, int height)

  • hideColumn(int column)
    隐藏所给的列
    类似的函数有hideRow(int row),显示行和列的函数分别为showRow(int row),showColumn(int column)

  • horizontalHeader()->QHeaderView
    返回表的水平表头
    类似的函数有verticalHeader()->QHeaderView,设置水平表头和垂直表头的函数为setHorizontalHeader(QHeaderView header)和setVerticalHeader(QHeaderView header)

  • horizontalOffset()
    此函数不理解
    类似的函数有verticalOffset()

  • indexAt(const QPoint &pos)->QModelIndex
    返回pos出的索引

  • isColumnHidden(int column),isRowHidden(int row)
    返回bool值,表示列和行是否处于隐藏状态

  • isIndexHidden(const QModelIndex &index)
    判断index索引值处是否处于隐藏状态

  • resizeColumnToContents(int column) [slot] 根据内容自动调整某列的列宽
    resizeColumnsToContents () [slot]              根据内容自动调整所有列的列宽
    resizeRowToContents ( int row ) [slot]        根据内容自动调整某一行的行高
    resizeRowsToContents () [slot]                  根据内容自动调整所有行的行高
    如下左图,有时单元格不能完全显示内容,通过resizeColumnsToContents ()后,变成如下右图
    PyQt5中QTableView函数讲解    PyQt5中QTableView函数讲解
    如果通过以上函数不能解决显示不全的问题,可参数文章QTableView根据内容自动调整大小(resizeColumnToContents解决不了的)

  • sortByColumn(int column, SortOrder order)
    对column进行排序,排序方式由order指定, Qt.DescendingOrder降序,Qt.AscendingOrder升序

  • sizeHintForColumn(int column)->int 和sizeHintForRow(int row)-> int  
    两个函数的意义不太理解

  • viewportSizeHint()->QSize
    和以上两个函数一个,不过是同时返回colum和row的大小