[英]Generating dialog from a separate thread
我幾乎完成了將pyGTK應用程序轉換為pyQT4的工作。 我苦苦掙扎的最后一個方面是從單獨的線程生成對話框。
我有一個主GUI和一個后台線程。 如果出現特定於線程的問題,線程將生成一個對話框。
對於pyGTK,我要做的是:
def update_gui(function, *args, **kargs):
'''DocString'''
def idle_func():
'''DocString'''
Gdk.threads_enter()
try:
function(*args, **kargs)
finally:
Gdk.threads_leave()
GObject.idle_add(idle_func)
def gui_error(msg):
'''Simple wrapper for a warning dialog'''
md = Gtk.MessageDialog(parent=None, message_type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.CLOSE)
md.set_markup(msg)
md.run()
md.destroy()
稱為:update_gui(gui_error,'help')
pyQT4中是否有一個對等的東西?還是我需要清除開始傳遞信號所需要的東西?
我需要消除開始傳遞信號所需要的東西嗎?
是的你是。
你總是可以有你的“其他線程”被QObject
基礎,有一個QObject
距離QApplication
的孩子基於對象的父母,並調用moveToThread()
方法,但它最好有主線程處理GUI,和其他線程發送信號更新它的主線程。
利用從GTK到QT的機會,通過軟件的主要組件之間的真正去耦來正確地重新設計應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.