質問

私はPyGTKをとGTK Builderのウィンドウの問題を抱えています。ここに私のコードの簡易版だ。

class GUI:
def __init__(self,parent):
    builder_file = "./ui/window.builder"
    self.builder = gtk.Builder()
    self.builder.add_from_file(builder_file)

    self.window = self.builder.get_object('main')
    self.builder.connect_signals( self )
    self.populate_window()
    self.window.show()

def populate_window(self):
    hbox = self.builder.get_object('hbox')
    hbox.pack_start( somewidgets )

def on_destroy(self):
    self.window.destroy()

GTKビルダーファイルだけを破壊する水平梱包箱と信号とのトップレベルウィンドウが含まれています。これは動作するように表示され、ウィンドウが作成され、うまく取り込まれますが、私は、他のウィジェットパイソンセグメンテーション違反が移入されたウィンドウを破棄しようとした場合。

私はそれがとてもPyGTKのは、それらをDestoryはする方法を知りませんが、私もよく分からないビルダーファイルに含まれていない新しいウィジェットを梱包して、いくつかの問題だこれを考えています。

任意の助けてくれてありがとう。

役に立ちましたか?

解決

あなたのハンドラは、ウィンドウが破壊にまだあるときに呼び出されるのでれる「破壊」は、このコード・フラグメントます:

def on_destroy(self):
    self.window.destroy()

無限の再帰呼び出しを生成します。他の面では、あなたはまだ破壊されているものを破壊している。

このはGtkBuilderやハンドコードのウィジェットとは何の関係もありませんが、私はあなたがのGtkWindow ::破壊するために何かを接続する必要がなぜ私にはわからないので、私は何かが欠けてる疑います。

他のヒント

gtk.main_quit()を使用します。

def on_destroy(self):
    gtk.main_quit()
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top