当脚本运行时,我正在更改文件的内容。 在centos上我有这样的错误:
AttributeError:'list'对象没有属性 'beginResetModel'
在Ubuntu上我没有任何错误,但srcipt没有重新加载数据。 在这种情况下,它可能与beginResetModel有关吗?
class StockListModel(QtCore.QAbstractListModel):
def __init__(self, stockdata = [], parent = None):
QtCore.QAbstractListModel.__init__(self, parent)
self.stockdata = stockdata
self.file_check = QtCore.QFileSystemWatcher(['/home/user/Desktop/file.txt'])
self.file_check.fileChanged.connect(self.resetItems)
def getItems(self):
return self.stockdata
@QtCore.pyqtSlot(str)
def resetItems(self, path):
self.beginResetModel()
self.stockdata = self.stockdata
self.endResetModel()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
app.setStyle("plastique")
tableView = QtGui.QTableView()
tableView.show()
file = open('/home/user/Desktop/file.txt')
a = file.readline() # ------> type STRING
time_variable = QtCore.QString("%s"%a)
model = StockListModel([time_variable])
tableView.setModel(model)
sys.exit(app.exec_())
答案 0 :(得分:0)
重置模型时,您不会更改数据:
self.stockdata = self.stockdata
此行需要将self.stockdata
设置为更新后的值。大概你想要从正在观看的文件中读取更改。