目录
一:介绍:
二:演示
一:介绍:
在 PySide6 中,QTableWidget 是一个用于展示和编辑表格数据的控件。它提供了在窗口中创建和显示表格的功能,并允许用户通过单元格来编辑数据。
要使用 QTableWidget,首先需要创建一个 QTableWidget 对象,并设置其行数和列数。可以通过 setRowCount() 和 setColumnCount() 方法来设置行和列的数量。
一旦创建了表格,可以使用 setItem() 方法将数据添加到表格的单元格中。setItem() 方法接受三个参数:行索引、列索引和 QTableWidgetItem 对象,用于指定要添加到表格中的数据。
除了添加数据,QTableWidget 还提供了其他一些功能,如插入和删除行或列、调整单元格大小等。可以使用 insertRow() 和 insertColumn() 方法来插入行或列,使用 removeRow() 和 removeColumn() 方法来删除行或列。
此外,可以通过设置表格的属性来定制表格的外观和行为。例如,可以使用 setHorizontalHeader() 和 setVerticalHeader() 方法来设置表头,使用 setSortingEnabled() 方法来启用排序功能等。
下面是一个简单的示例代码,演示了如何在 PySide6 中使用 QTableWidget:
二:演示
import sys
 from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QTableWidget, QTableWidgetItem
 class MyApp(QWidget):
     def __init__(self):
         super().__init__()
         self.setWindowTitle('数据表格示例')
         self.setGeometry(100, 100, 500, 500)
        # 创建一个表格
         self.table = QTableWidget()
         self.table.setRowCount(5)  # 设置行数
         self.table.setColumnCount(2)  # 设置列数
        # 添加数据到表格中
         for i in range(5):
             for j in range(2):
                 item = QTableWidgetItem(f"行{i + 1}列{j + 1}")  # 创建 QTableWidgetItem 对象并设置文本
                 self.table.setItem(i, j, item)  # 将 QTableWidgetItem 对象添加到表格中
        # 创建一个按钮来添加行数据
         self.add_row_button = QPushButton('添加行数据')
         self.add_row_button.clicked.connect(self.add_row)
        # 创建一个按钮来添加列数据
         self.add_column_button = QPushButton('添加列数据')
         self.add_column_button.clicked.connect(self.add_column)
        # 创建一个垂直布局并添加控件
         layout = QVBoxLayout()
         layout.addWidget(self.table)  # 添加表格到布局中
         layout.addWidget(self.add_row_button)  # 添加按钮到布局中
         layout.addWidget(self.add_column_button)  # 添加按钮到布局中
         self.setLayout(layout)  # 设置窗口的布局为垂直布局
    def add_row(self):
         self.table.insertRow(self.table.rowCount())  # 在表格末尾插入一行
    def add_column(self):
         for i in range(self.table.rowCount()):  # 遍历每一行并添加一列数据
             item = QTableWidgetItem(f"新列{i + 1}")  # 创建 QTableWidgetItem 对象并设置文本
             self.table.setItem(i, self.table.columnCount() - 1, item)  # 将 QTableWidgetItem 对象添加到表格中当前行的最后一列
             self.table.setSpan(i, self.table.columnCount() - 1, 1, 2)  # 将当前行的最后一列跨度设置为2,以覆盖新插入的列和原有列
             self.table.setColumnWidth(self.table.columnCount() - 1, 100)  # 设置新插入列的宽度为100像素
 if __name__ == '__main__':
     app = QApplication(sys.argv)
     ex = MyApp()
     ex.show()
     sys.exit(app.exec_())
