@TOC
(1)QT(4)-QAbstractItemView
QTableView是Qt中用于显示表格数据的小部件。它与QTableWidget类似,但是它使用模型/视图架构来存储和显示数据,而QTableWidget则直接将数据存储在小部件内部。
使用QTableView的优点在于,可以使用不同的数据模型来显示表格数据,而不仅仅是Qt提供的QStandardItemModel。这使能够以更灵活的方式处理和显示数据,例如可以将表格数据与数据库相关联。
void QTableView::clearSpans()
它用于一次性清除表格中所有跨度。表格跨度是指一个单元格占据多个行和/或列的情况。也可以理解为我们在Excel中的取消合并单元格。如果想要移除表格中的某个特定跨度,也可以使用setSpan()函数并将行跨度和列跨度设置为1。
void QTableView::setSpan(int row, int column, int rowSpanCount, int columnSpanCount)
将位于(row,column)的元素的范围扩展唯rowSpanCount行和 columnSpanCount列。例如:
ui->tableView->setSpan(3, 0, 2, 2);我们将第3行第0列的单元格设置为跨越2行2列。这意味着该单元格将占据第3行的第0和1列和第4行的第0,1列。
int QTableView::columnAt(int x) const
它用于获取表格中给定坐标x处的列索引。如果给定的坐标不在表格中,则返回-1。
// Create a QTableView object
QTableView *table = new QTableView();
// Set the row and column spans for some cells
table->setSpan(0, 0, 2, 1);
table->setSpan(0, 1, 1, 2);
// Get the column index at x coordinate 100
int col = table->columnAt(100);
// Print the column index
qDebug() << "Column index at x=100: " << col;
columnAt()帮助确定表格中某个特定坐标处的单元格。它可以用于处理用户的鼠标点击事件,或者执行其他与单元格位置有关的操作。
int QTableView::rowAt(int y) const
同上
int QTableView::columnSpan(int row, int column) const
它返回表格中指定行和列的单元格所跨越的列数。如果指定的单元格不跨越任何列,则函数返回1。就是这个元素的列占了几列
// Create a QTableView object
QTableView *table = new QTableView();
// Set the row and column spans for some cells
table->setSpan(0, 0, 2, 1);
table->setSpan(0, 1, 1, 2);
qDebug()<
因为它允许快速查找表格中指定单元格跨越的列数。例如,可以使用它来计算表格的宽度,或者确定表格中某个单元格是否跨越多列。
int QTableView::rowSpan(int row, int column) const
同上
int QTableView::columnViewportPosition(int column) const
返回指定列所处的x坐标(该列左上角的坐标)
int QTableView::rowViewportPosition(int row) const
返回指定行所处的y坐标(该列左上角的坐标)
int QTableView::columnWidth(int column) const
返回指定列的宽度
int QTableView::rowHeight(int row) const
返回指定行的高度
void QTableView::setColumnWidth(int column, int width)
将指定列的宽度设置为指定宽度
void QTableView::setRowHeight(int row, int height)
将指定行的高度设置为指定高度
void QTableView::resizeColumnToContents(int column) slot[]
函数可以调整指定列的大小,以便适应其中的内容。
该函数接受一个 int 类型的参数,表示需要调整大小的列。调用该函数后,指定列的宽度会自动调整为适应其中的内容。
这是一个公有的槽函数,可以设计一个边输入内容边调整列宽
void QTableView::resizeColumnsToContents() slot[]
函数可以调整所有列的大小,以便适应其中的内容。
void QTableView::resizeRowToContents(int row) slot[]
函数可以调整指定行的高度,以便适应其中的内容。
void QTableView::resizeRowsToContents()
函数可以调整所有行的高度,以便适应其中的内容。
Qt::PenStyle gridStyle() const
Qt::PenStyle 是一种枚举类型,用于表示画笔样式。Qt::PenStyle 类型定义了一些常用的画笔样式,如实线、虚线、点线等。
QTableView 类提供了 gridStyle() 函数,用于获取表格的网格线样式。该函数返回一个 Qt::PenStyle 类型的值,表示表格的网格线样式。
void setGridStyle(Qt::PenStyle style)
设置网格网格线的样式
//获取样式
Qt::PenStyle style = ui->tableView->gridStyle();
qDebug()<