web-dev-qa-db-ja.com

GtkAboutbookのコンテンツをGtkNotebookウィジェットに埋め込む方法

私はPythonタブベースのアプリを書いていますが、追加のポップアップダイアログを持たせたくありません。

Gtk.AboutDialog機能を使用したいのですが、別のウィンドウとして表示したくありません。むしろ、Gtk.Notebook(Gladeで作成した)のタブの1つに埋め込みたいのです。

これを行う明白な方法を見つけることができませんでした。誰かがポインターを持っていますか?

7
David Planella

移動できます コンテンツエリア (GtkVBox)からGtkDialogから別のGtkContainerに追加し、GtkNotebookに追加-使用 gtk.Widget.reparent() 方法。

about = Gtk.AboutDialog()
about.set_program_name ("Application")
about.set_copyright ("Author")

box = Gtk.VBox ()
about.vbox.reparent (box)
notebook.append_page (box, Gtk.Label("About"))
about.destroy ()

Gladeで作成されたインターフェイスでは、このソリューションに対して簡単なトリックを行う必要があります。ノートブックに「About」タブを作成し、GtkBoxを追加します(IDは「about_box」など)。その後、次のようなことができます:

box = builder.get_object ("about_box")
about.vbox.reparent (box)

いくつかの理由で、GladeのGtkAboutDialog コンテンツエリア GtkButtonBoxも含まれています。このボタンが必要ない場合は、単に破棄するだけです。

about.action_area.destroy()

「閉じる」ボタンなしで「クレジット」ボタンのみが必要な場合は、次のようにします。

close_button = about.get_widget_for_response(Gtk.ResponseType.CANCEL)
close_button.destroy()
6
Damian