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中实现表格的显示和编辑功能。你可以根据自己的需要,进一步定制和扩展这个例子。
