QTableView的用法

QTableView是一个显示表格数据的控件,它继承自QAbstractItemView类。下面介绍QTableView的用法:

  • 添加QTableView控件

在Qt Designer中可以直接将QTableView拖放到窗口中,也可以在代码中创建QTableView实例并将其添加到布局中:

table_view = QTableView()
layout.addWidget(table_view)
  • 设置数据模型

QTableView需要一个数据模型来提供数据,常用的数据模型有QStandardItemModel、QSqlTableModel和QSqlQueryModel等。以QStandardItemModel为例:

model = QStandardItemModel()
model.setColumnCount(3)
model.setRowCount(4)
for row in range(model.rowCount()):
    for column in range(model.columnCount()):
        item = QStandardItem(str(row * 100 + column))
        model.setItem(row, column, item)
table_view.setModel(model)

上述代码创建了一个3列4行的表格,并将每个单元格的数据都设置为行号乘以100再加上列号(如第1行第2列为102)。

  • 设置表头

可以通过QHeaderView设置表头,包括水平表头和垂直表头。例如:

horizontal_header = table_view.horizontalHeader()
horizontal_header.setSectionResizeMode(QHeaderView.Stretch)

vertical_header = table_view.verticalHeader()
vertical_header.setSectionResizeMode(QHeaderView.Stretch)

上述代码将水平表头和垂直表头的大小调整为与控件相同。

  • 其他操作

QTableView还支持以下常见操作:

  1. 获取选中单元格的行列号:

    selected_indexes = table_view.selectedIndexes()
    rows = set(index.row() for index in selected_indexes)
    cols = set(index.column() for index in selected_indexes)
  2. 设置单元格可编辑:

    table_view.setEditTriggers(QAbstractItemView.DoubleClicked)
  3. 获取单元格数据:

    model.data(model.index(row, column))
  4. 设置单元格数据:

    model.setData(model.index(row, column), new_value)

    以上是QTableView的主要用法,更多详细信息可以参考官方文档。

你可能感兴趣的:(qt,开发语言)