PyQT 列表视图中的消息计时 window 发生在函数运行之前?
Timing of messages in PyQT list view window to happen before a function runs?
我有一些 python PyQT 代码,用户将在其中单击一个按钮,然后启动一个进程以从网站下载一些数据。当发生这种情况时,我希望在列表 window 中显示一条消息,说 "please wait" 这样他们就知道发生了什么事。
然而,计时已关闭,消息在处理完成后出现,即使我在 class 函数开始时添加了消息状态代码,以便单击按钮启动进程.
这是我拥有的代码的简短版本:
self.statusfeed.addItem("Please Wait....Updating database from the web")
update_db()
self.statusfeed.addItem("Database updated")
函数 update_db() 运行下载。
除了用于从以下位置获取文件的网络链接字典之外,这是更新功能的主要部分:
for filename, weblink in web_links:
netfile = urllib2.urlopen(weblink)
out_fp = open(os.path.join(root, filename), 'w')
out_fp.write(netfile.read())
out_fp.close
但是,请等待状态直到下载完成后才会更新。我怎样才能强制它等待并按照上面显示的顺序更新状态?
在调用 update_db()
之前添加 QtGui.qApp.processEvents()
。这将使 UI 根据未决事件更新自身。
我有一些 python PyQT 代码,用户将在其中单击一个按钮,然后启动一个进程以从网站下载一些数据。当发生这种情况时,我希望在列表 window 中显示一条消息,说 "please wait" 这样他们就知道发生了什么事。
然而,计时已关闭,消息在处理完成后出现,即使我在 class 函数开始时添加了消息状态代码,以便单击按钮启动进程. 这是我拥有的代码的简短版本:
self.statusfeed.addItem("Please Wait....Updating database from the web")
update_db()
self.statusfeed.addItem("Database updated")
函数 update_db() 运行下载。
除了用于从以下位置获取文件的网络链接字典之外,这是更新功能的主要部分:
for filename, weblink in web_links:
netfile = urllib2.urlopen(weblink)
out_fp = open(os.path.join(root, filename), 'w')
out_fp.write(netfile.read())
out_fp.close
但是,请等待状态直到下载完成后才会更新。我怎样才能强制它等待并按照上面显示的顺序更新状态?
在调用 update_db()
之前添加 QtGui.qApp.processEvents()
。这将使 UI 根据未决事件更新自身。