【发布时间】:2014-07-30 02:42:48
【问题描述】:
我正在尝试实现一个模型,以便在通过 QT 设计器设计的 tableView 对象中显示来自 pandas 数据框的数据。 我在 Stack Overflow 上看到了一些示例,展示了如何为此目的编写一个简单的模型:
import sip
sip.setapi('QString', 1)
sip.setapi('QVariant', 1)
import pandas as pd
from PyQt4 import QtCore, QtGui
class TableModel(QtCore.QAbstractTableModel):
def __init__(self, parent=None, *args):
super(TableModel, self).__init__()
self.datatable = None
def update(self, dataIn):
self.datatable = dataIn
def rowCount(self, parent=QtCore.QModelIndex()):
return len(self.datatable.index)
def columnCount(self, parent=QtCore.QModelIndex()):
return len(self.datatable.columns.values)
def data(self, index, role=QtCore.Qt.DisplayRole):
if role == QtCore.Qt.DisplayRole:
i = index.row()
j = index.column()
return '{0}'.format(self.datatable.iget_value(i, j))
else:
return QtCore.QVariant()
但是,我无法在 TableModel 类中成功编写任何允许我编辑水平和垂直标题以显示数据框索引(在行上)和数据框列标签(在表的列上)的函数。 有人可以帮我吗? 谢谢
【问题讨论】:
标签: python qt uitableview model pandas