Эта программа python3 встраивает Gtk.AboutDialog на страницу Gtk.Notebook . Начиная с версии 3.14 Gtk, функция reparent устарела. В документации reparent сказано заменить его функциями Gtk.Container.remove () и Gtk.Container.add () . Возможно ли это в данной ситуации? Если да, то как? Это изменение предназначено для будущего приложения, когда переопределение больше не поддерживается.
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
class MyWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="AboutDialog in notebook")
notebook = Gtk.Notebook()
self.add(notebook)
page1 = Gtk.Box()
page1.add(Gtk.Label(label="Default Page!"))
notebook.append_page(page1, Gtk.Label(label="Default"))
page2 = Gtk.Box()
notebook.append_page(page2,
Gtk.Image.new_from_icon_name("help-about", Gtk.IconSize.MENU))
aboutdialog = Gtk.AboutDialog()
aboutdialog.set_logo_icon_name(Gtk.STOCK_ABOUT)
# Replace reparent with Gtk.Container.remove() and Gtk.Container.add() ?
aboutdialog.vbox.reparent(page2)
win = MyWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()
Gobject.ref () и Gobject.unref () методы не поддерживаются в моей системе.
AboutDialog может отображаться как отдельное окно, но это не оптимальное решение.
Эта программа работает на Linux Mint 18.3 с Python 3.5 и Gtk 3.18.