我有一个QTableView dipl,它用填充了数据框的QAbstractTableModel表示。
我的数据框是从摘录中加载的,我想了解如何在每次加载数据框时(例如每15分钟)更新QTableView
我试图在我的模型中创建一个函数更新,该函数接受参数数据框,将其插入模型的数据中并发出信号layoutAboutToBeChanged和layoutChanged。但是我不知道如何使用此功能并在代码已经运行时每15分钟运行一次(即已经显示了表格视图)
class TicketGUI(QAbstractTableModel):
def __init__(self, data):
QAbstractTableModel.__init__(self)
self._data = data
def rowCount(self, parent=None):
return self._data.shape[0]
def columnCount(self, parent=None):
return self._data.shape[1]
def data(self, index, role=Qt.DisplayRole):
if index.isValid():
if role == Qt.DisplayRole:
return str(self._data.iloc[index.row(), index.column()])
def headerData(self, col, orientation, role=Qt.DisplayRole):
if orientation == Qt.Horizontal and role == Qt.DisplayRole:
return self._data.columns[col]
return None
def update(self, data):
self.layoutAboutToBeChanged.emit()
self._data = data
self.layoutChanged.emit()
if __name__ == 'main':
EM = Extract(user_id, mdp) #Extract manager
tickets.load(EM) #Load data from extract
data = tickets.toDataframe() #Convert data into dataframe
app = QApplication(sys.argv)
model = TicketGUI(data)
view = QTableView() #Create a view TableView
view.setModel(model) #Set the model to the view
view.show()
sys.exit(app.exec_())