博学的牛肉面 · 如何使用QListView选择在QTable ...· 2 月前 · |
傻傻的课本 · 在qTableView Python ...· 2 月前 · |
追风的投影仪 · QT学习笔记(8)-QDomDocument ...· 2 月前 · |
愤怒的键盘 · pyqt5中QTableView如何实现分页 ...· 5 月前 · |
风度翩翩的豆腐 · Resizing QTableView ...· 5 月前 · |
挂过科的雪糕 · shell脚本执行卡住 - CSDN文库· 3 月前 · |
千杯不醉的脆皮肠 · Apple 剛剛為開發者發布了 macOS ...· 3 月前 · |
单身的打火机 · 寅次郎影迷必去地:日本柴又 走进寅次郎的故乡· 4 月前 · |
失恋的汽水 · 语法和数据类型 - JavaScript ...· 11 月前 · |
飘逸的企鹅 · 2022年剧情恐怖《骨及所有》BD中英双字迅 ...· 1 年前 · |
pyqt5 python dataframe qtableview |
https://cloud.tencent.cn/developer/information/%E5%9C%A8qTableView%20Python%20PyQt5%E4%B8%AD%E7%BC%96%E8%BE%91%E5%90%8E%E6%9B%B4%E6%96%B0%E6%95%B0%E6%8D%AE%E5%B8%A7 |
傻傻的课本
2 月前 |
,可以通过以下步骤实现:
table_view = QTableView()
model = QStandardItemModel()
table_view.setModel(model)
def update_dataframe():
dataframe = pd.DataFrame()
for row in range(model.rowCount()):
row_data = []
for column in range(model.columnCount()):
item = model.item(row, column)
if item is not None:
row_data.append(item.text())
else:
row_data.append('')
dataframe = dataframe.append(pd.Series(row_data), ignore_index=True)
# 在这里可以对数据帧进行进一步处理或操作
print(dataframe)
def load_dataframe(dataframe):
model.clear()
model.setColumnCount(dataframe.shape[1])
model.setRowCount(dataframe.shape[0])
for row in range(dataframe.shape[0]):
for column in range(dataframe.shape[1]):
item = QStandardItem(str(dataframe.iloc[row, column]))
model.setItem(row, column, item)
model.dataChanged.connect(update_dataframe)
完整的示例代码如下:
from PyQt5.QtWidgets import QApplication, QTableView
from PyQt5.QtGui import QStandardItemModel, QStandardItem
import pandas as pd
def update_dataframe():
dataframe = pd.DataFrame()
for row in range(model.rowCount()):
row_data = []
for column in range(model.columnCount()):
item = model.item(row, column)
if item is not None:
row_data.append(item.text())
else:
row_data.append('')
dataframe = dataframe.append(pd.Series(row_data), ignore_index=True)
# 在这里可以对数据帧进行进一步处理或操作
print(dataframe)
def load_dataframe(dataframe):
model.clear()
model.setColumnCount(dataframe.shape[1])
model.setRowCount(dataframe.shape[0])
for row in range(dataframe.shape[0]):
for column in range(dataframe.shape[1]):
item = QStandardItem(str(dataframe.iloc[row, column]))
model.setItem(row, column, item)
app = QApplication([])
table_view = QTableView()
model = QStandardItemModel()
table_view.setModel(model)
dataframe = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
load_dataframe(dataframe)
model.dataChanged.connect(update_dataframe)
table_view.show()
app.exec_()
这个例子中,我们创建了一个QTableView对象,并使用QStandardItemModel作为数据模型。通过load_dataframe函数将数据帧加载到QTableView中,然后通过update_dataframe函数将QTableView中的数据更新到数据帧中。在数据发生变化时,会触发dataChanged信号,从而调用update_dataframe函数。
博学的牛肉面 · 如何使用QListView选择在QTableView中显示哪些列_如何选择使用OpenXava在列表视图中显示哪些属性?_如何使用pyside2在Qtableview中显示(和格式化)日期时间数据 - 2 月前 |
傻傻的课本 · 在qTableView Python PyQt5中编辑后更新数据帧_PyQt5,无法使用鼠标滚轮在显示熊猫数据帧的QTableView中滚动_在Python中清理后保存数据帧 - 腾讯云开发者社区 - 2 月前 |
挂过科的雪糕 · shell脚本执行卡住 - CSDN文库 3 月前 |
单身的打火机 · 寅次郎影迷必去地:日本柴又 走进寅次郎的故乡 4 月前 |
失恋的汽水 · 语法和数据类型 - JavaScript | MDN 11 月前 |