Я пишу приложение Python на основе вкладок, и я не хочу, чтобы у него были какие-либо дополнительные всплывающие диалоги.
Я хотел бы использовать функцию Gtk.AboutDialog
, но я не хочу, чтобы она отображалась в виде отдельного окна. Скорее, я бы хотел, чтобы он был встроен в одну из вкладок моего Gtk.Notebook
(который я создал с помощью Glade).
Я не мог найти какой-либо очевидный способ сделать это. У кого-нибудь есть указатели?
Вы можете переместить область содержимого i> (GtkVBox
) из GtkDialog
в другое GtkContainer
, а затем добавить к GtkNotebook
- используя gtk.Widget.reparent () [ 1111] метод.
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, вы должны сделать простой трюк для этого решения. Создайте вкладку «О программе» в блокноте с добавлением GtkBox
(с идентификатором, например, «about_box»). Тогда вы можете сделать что-то вроде этого:
box = builder.get_object ("about_box")
about.vbox.reparent (box)
По некоторым причинам GtkAboutDialog
область содержимого i> Глейда содержит также GtkButtonBox
. Если вам не нужны эти кнопки, просто уничтожьте их:
about.action_area.destroy()
Если вам нужна только кнопка «Кредиты», без кнопки «Закрыть», сделайте что-то вроде этого:
close_button = about.get_widget_for_response(Gtk.ResponseType.CANCEL)
close_button.destroy()