1.通过事件关联和线程关联的方法刷新控件
self.listview=updatelistview()
self.listview.updateText.connect(self.viewlist)
listvew = threading.Thread(target=self.updatalistview, args=())
#创建守护进程
listvew.setDaemon(True)
listvew.start()
def updatalistview(self):
while True:
#if self.refresh==False:
#线程定时睡眠
time.sleep(1)
self.listview.addseverthread()
def viewlist(self):
print 'view'
if self.refresh==False:
self.model = QStandardItemModel(self.ui.listView)
for food in listviewdata:
item = QStandardItem(food)
# Add a checkbox to it
item.setCheckable(True)
# Add the item to the model
self.model.appendRow(item)
class updatelistview(QtCore.QObject):
updateText = QtCore.pyqtSignal(str)
def addseverthread(self):
listvew = threading.Thread(target=self.monitor_vector, args=())
#创建守护进程
listvew.setDaemon(True)
listvew.start()
def monitor_vector(self):
#发送信号槽事件
self.updateText.emit('updated list')
2.整个实现流程