DEF機能を実行するときにGUIがフリーズ。スレッドを使用しますか?

StackOverflow https://stackoverflow.com/questions/2608922

  •  25-09-2019
  •  | 
  •  

質問

私は2つのボタンがあり、それぞれが特定のことを行う小さなプログラムを作りました。ここでは、コードの簡易版だ。

シングは、コマンドが完了するまで、それがクリックされた位置と全体のGUIがフリーズでそのボタンフリーズと滞在以外罰金の作品です。 私の知る限りでは、スレッドは、このような状況で使用するのがベストだろうが、私はこの例では、それを実装する方法は考えている。

私は、GUIのための空き地とPyGTKを使用します。

    def do1:
        t = 2
        #do something
        time.sleep(t)
        #do something
        time.sleep(t)
def do2:
        t = 3
        #do something
        time.sleep(t)
        #do something
        time.sleep(t)

class we:
        wTree = None
        def __init__( self ):                
                self.wTree = gtk.glade.XML( "ui.glade" )

                dic = {
                        "on_buttonSone" : self.sone,
                        "on_buttonStwo" : self.stwo,
                }
                self.wTree.signal_autoconnect( dic )              
                gtk.main()

        def sone(self, widget):
                i = 0
                while i < 3:
                        t = 1
                        #do something
                        i += 1
                        time.sleep(t)           
                self.wTree.get_widget("entryResult").set_text("Done.")
        def stwo(self, widget):
                start = time.clock()
                array = ['A','B']
                adict = {'A':do1,'B':do2}
                for f in array:
                        adict[f]()
                end = time.clock()
                elapsed = end - start
                gg = round(elapsed,2)             
                self.wTree.get_widget("entryResult").set_text(str(gg))             

go=we()
役に立ちましたか?

解決

PyGTKの存在FAQのセクション全体はスレッドのに専念しています。

20.6は良い最小限の例のように思える。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top