web-dev-qa-db-ja.com

Python(Gtk3 +)でGTKDialogを初期化する方法

python「古い」方法でGTKダイアログを作成する場合:

class URLDialog(Gtk.Dialog):
def __init__(self, parent):
    Gtk.Dialog.__init__(self, _t("URL_DLG"), parent, 0,
        (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
         Gtk.STOCK_OK, Gtk.ResponseType.OK))

次の警告が表示されます。

PyGTKDeprecationWarning: "buttons"引数はGtk.ButtonsType列挙値でなければなりません。ボタンを追加するには、「add_buttons」メソッドを使用してください。参照: https://wiki.gnome.org/PyGObject/InitializerDeprecations

リンクはあまり明確ではないため、イニシャライザからボタンを取り出そうとすると、他のより深刻な問題が発生します。

私の質問は、そのようなダイアログを初期化するための適切で公式で正しい方法は何ですか?

3
kanehekili

私はあなたの問題を再現することはできませんが、これはそれを修正するはずだと思います:

Gtk.Dialog.__init__(self, _t("URL_DLG"), parent, 0)
self.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
                 Gtk.STOCK_OK, Gtk.ResponseType.OK)

編集: OPが指摘したとおり

Gtk.Dialog.__init__(self, title = _t("URL_DLG"), 
                          parent = parent, 
                          flags = 0)
self.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
                 Gtk.STOCK_OK, Gtk.ResponseType.OK)
2
theGtknerd