簡體   English   中英

從單獨的線程生成對話框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM