本帖最后由 沉默的菜鸟 于 2019-9-21 18:44 编辑
我写了一个关于读取亚马逊云aws的SQS里面的消息的带界面的PyQt小程序,但在获取完消息,刷新界面时发现界面没变化,不知道怎么办,求大佬帮忙。
我用一个计时器与这个函数连接,当计时器timeout时,调用这个函数来刷新主界面,但主界面好像没变化
代码如下:
[Python] 纯文本查看 复制代码
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'][0])['Body']
templist = str(msg['ResponseMetadata']['HTTPHeaders']['date']).split(' ')
date = templist[3] + ' ' + templist[4]
senderId = str(dict(msg['Messages'][0])['Attributes']['SenderId']).split('=')[1]
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')
|