欢迎访问宙启技术站
智能推送

Python中Qtpy.QtGui库实现表格显示与编辑功能

发布时间:2023-12-17 20:49:33

Qtpy.QtGui库是PyQt的一个包装器,它可以使用PyQt和PySide中的QtGui模块的功能。在Qt中,QtGui模块提供了一系列用于创建图形用户界面的类,其中包括了表格显示和编辑的功能。

下面是一个使用Qtpy.QtGui库实现表格显示和编辑的例子:

from qtpy.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem
from qtpy.QtCore import Qt

# 创建主窗口类
class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        
        # 设置窗口标题和大小
        self.setWindowTitle("Table Example")
        self.setGeometry(100, 100, 500, 300)
        
        # 创建表格部件
        self.table = QTableWidget(self)
        self.setCentralWidget(self.table)
        
        # 设置表格的行数和列数
        self.table.setRowCount(5)
        self.table.setColumnCount(3)
        
        # 设置表格的标题
        self.table.setHorizontalHeaderLabels(["Name", "Age", "City"])

        # 添加数据到表格中
        self.table.setItem(0, 0, QTableWidgetItem("John"))
        self.table.setItem(0, 1, QTableWidgetItem("25"))
        self.table.setItem(0, 2, QTableWidgetItem("New York"))
                
        self.table.setItem(1, 0, QTableWidgetItem("Michael"))
        self.table.setItem(1, 1, QTableWidgetItem("30"))
        self.table.setItem(1, 2, QTableWidgetItem("Los Angeles"))
        
        # 允许编辑表格的内容
        self.table.setEditTriggers(QTableWidget.DoubleClicked | QTableWidget.EditKeyPressed)
        
        # 设置表格的选择模式为单元格
        self.table.setSelectionMode(QTableWidget.SingleSelection)
        self.table.setSelectionBehavior(QTableWidget.SelectItems)
        
        # 设置表格的单元格内容可以自动适应大小
        self.table.resizeColumnsToContents()
        self.table.resizeRowsToContents()
        
        # 设置表格的行和列的大小随窗口改变
        self.table.setSizeAdjustPolicy(QTableWidget.AdjustToContents)
        
        # 绑定表格内容修改的槽函数
        self.table.itemChanged.connect(self.item_changed)
        
    # 表格内容修改的槽函数
    def item_changed(self, item):
        row = item.row()
        col = item.column()
        print(f"Row: {row}, Column: {col}, Value: {item.text()}")

# 创建应用程序对象
app = QApplication([])

# 创建主窗口对象
window = MainWindow()

# 显示主窗口
window.show()

# 运行应用程序主循环
app.exec_()

这个例子创建了一个包含5行3列的表格,设置了每个单元格的内容,然后允许对表格进行编辑。当用户编辑表格内容时,会触发itemChanged信号,并调用item_changed槽函数,打印出当前被修改的单元格的行号、列号和新的值。

运行上述代码,会显示一个表格,可以在单元格上双击进行编辑,并在控制台输出被修改的单元格信息。

这是一个简单的例子,演示了如何使用Qtpy.QtGui库在Python中实现表格的显示和编辑功能。你可以根据自己的需要,进一步定制和扩展这个例子。