首页 PyQt5视频教程 PyQt QTableView二维表格视图控件API大全和案例
pay pay

PyQt QTableView二维表格视图控件API大全和案例

日期: 七月 11, 2023, 1:35 p.m.
栏目: PyQt5视频教程
阅读: 194
作者: Python自学网-村长

摘要: QTableView是一个二维表格视图控件,用于显示数据,支持排序、编辑、选择等功能。下面是QTableView的API大全和一个简单的示例。

QTableView是一个二维表格视图控件,用于显示数据,支持排序、编辑、选择等功能。下面是QTableView的API大全和一个简单的示例。

一、QTableView常用API

  • setModel(QAbstractItemModel *model): 设置数据模型。
  • setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior): 设置选择行为,有QAbstractItemView::SelectRows和QAbstractItemView::SelectItems两个选项。
  • setSelectionMode(QAbstractItemView::SelectionMode mode): 设置选择模式,有QAbstractItemView::SingleSelection和QAbstractItemView::MultiSelection两个选项。
  • setSortingEnabled(bool enable): 启用或禁用排序功能。
  • setEditTriggers(QAbstractItemView::EditTriggers triggers): 设置编辑触发方式,有QAbstractItemView::NoEditTriggers、QAbstractItemView::CurrentChanged、QAbstractItemView::DoubleClicked和QAbstractItemView::SelectedClicked等选项。
  • resizeColumnsToContents(): 根据内容自适应列宽。
  • resizeRowsToContents(): 根据内容自适应行高。
  • horizontalHeader(): 获取水平表头对象。
  • verticalHeader(): 获取垂直表头对象。
  • currentIndex(): 获取当前索引。
  • model(): 获取数据模型。

二、QTableView案例示例

下面是一个简单的示例,展示如何创建一个QTableView并设置数据模型。

from PyQt5.QtWidgets import QApplication, QTableView
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QStandardItemModel, QStandardItem
 
 
class TableView(QTableView):
    def __init__(self):
        super().__init__()
 
        self.model = QStandardItemModel(4, 3)
        self.model.setHorizontalHeaderLabels(['Name', 'Age', 'Gender'])
        self.setItem(0, 0, QStandardItem('Alice'))
        self.setItem(0, 1, QStandardItem('25'))
        self.setItem(0, 2, QStandardItem('Female'))
        self.setItem(1, 0, QStandardItem('Bob'))
        self.setItem(1, 1, QStandardItem('30'))
        self.setItem(1, 2, QStandardItem('Male'))
        self.setModel(self.model)
 
        self.setSortingEnabled(True)
        self.setEditTriggers(QTableView.NoEditTriggers)
        self.setSelectionBehavior(QTableView.SelectRows)
        self.setSelectionMode(QTableView.SingleSelection)
 
        self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        self.verticalHeader().setVisible(False)
 
        self.setAlternatingRowColors(True)
        self.setStyleSheet("QTableView::item:hover{background-color: #E6E6FA;}")
 
 
if __name__ == '__main__':
    app = QApplication([])
    table_view = TableView()
    table_view.show()
    app.exec_()

在这个示例中,我们创建了一个QStandardItemModel对象作为数据模型,设置了水平表头标签,然后设置了数据项,并将数据模型设置为QTableView的模型。我们还启用了排序功能,禁用了编辑触发方式,设置了选择行为和选择模式,根据内容自适应列宽和行高,并设置了交替行颜色和鼠标悬停颜色。

运行这个示例,可以看到一个简单的二维表格视图,其中显示了姓名、年龄和性别三列数据,并且可以根据点击表头进行升序或降序排序。

除了上面的常用API外,QTableView还有很多其他的API,包括设置背景颜色、设置网格线、设置行高、设置列宽、获取当前选择的行等等。根据需要选择合适的API进行使用即可。

原创视频,版权所有,未经允许,切勿转载,违者必究!
回顶部