我每分钟都在更新我的tableView(当我的模型更新时),没有任何问题和冻结。你知道吗
但是现在我的更新函数要比以前花更多的时间,因为有特定的提取,所以当我更新视图时,它会冻结,直到我的更新函数终止。你知道吗
如何在另一个线程中启动更新以避免视图冻结?你知道吗
我试图在线程更新中启动计时器,但仍然冻结
class TicketGUI(QAbstractTableModel):
def __init__(self, user_id, mdp, profile):
QAbstractTableModel.__init__(self)
self.EM = Extract(user_id, mdp) #Extract manager
self.tickets = Tickets()
self.tickets.load(self.EM, True) Load tickets from extract
data = self.tickets.toDataframe()
self._data = data
# Update my table view each 60 seconds
timer = QtCore.QTimer(self, timeout=self.on_timeout)
thread_update = Thread(target=timer.start(60 * 1000))
thread_update.start()
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):
[...]
def headerData(self, col, orientation, role=Qt.DisplayRole):
[...]
def update(self, data):
self.beginResetModel()
self._data = data
self.endResetModel()
def on_timeout(self):
self.tickets.load(self.EM) #Load tickets from extract (THIS TAKES TIME)
data = self.tickets.toDataframe()
self.update(data)
目前没有回答
相关问题 更多 >
编程相关推荐