一个关于PyQt的问题
本帖最后由 沉默的菜鸟 于 2019-9-21 18:44 编辑我写了一个关于读取亚马逊云aws的SQS里面的消息的带界面的PyQt小程序,但在获取完消息,刷新界面时发现界面没变化,不知道怎么办,求大佬帮忙。
我用一个计时器与这个函数连接,当计时器timeout时,调用这个函数来刷新主界面,但主界面好像没变化
代码如下:
def changeTable(self):
global myQueue
while not myQueue.empty():
# 加锁
lock.acquire()
msg = myQueue.get()
# 释放锁
lock.release()
msg = json.loads(msg)
rowcount = self.tableWidget.rowCount()
if 'Messages' in msg:
data = dict(msg['Messages'])['Body']
templist = str(msg['ResponseMetadata']['HTTPHeaders']['date']).split(' ')
date = templist + ' ' + templist
senderId = str(dict(msg['Messages'])['Attributes']['SenderId']).split('=')
item_1 = QTableWidgetItem(str(rowcount))
item_2 = QTableWidgetItem(str(date))
item_3 = QTableWidgetItem(str(senderId))
item_4 = QTableWidgetItem(str(data))
self.tableWidget.setItem(rowcount, 0, item_1)
self.tableWidget.setItem(rowcount, 1, item_2)
self.tableWidget.setItem(rowcount, 2, item_3)
self.tableWidget.setItem(rowcount, 3, item_4)
self.tableWidget.viewport().update()
QApplication.processEvents()
else:
print('No message')
在主线程中操作关于UI的动作。例如,增删改刷新tablewidget否则会造成刷新不成功,界面假死等。何不试试呢 Xw丶小威 发表于 2019-9-21 18:25
在主线程中操作关于UI的动作。例如,增删改刷新tablewidget否则会造成刷新不成功,界面假死等。何不试试 ...
我这是通过信号与槽在主线程的操作,而且我调试的时候这些代码都是执行了的,但界面就是没变化,{:1_937:} 搞定了,忘了加一个InsertRow了{:1_924:}
页:
[1]