我正在使用 Python 3.6,我正尝试从 glade xml 文件创建一个应用程序窗口,如下所示:
builder = Gtk.Builder()
builder.add_from_file("ui/window.glade")
win = builder.get_object("window1")
win.set_application(self)
win.set_position(Gtk.WindowPosition.CENTER)
win.show_all()
但是,这种方式窗口不保留菜单栏,我在应用程序 do_startup 中设置的,如下所示:
builder.add_from_file("ui/menu.glade")
set_menubar(self.builder.get_object("menubar"))
但是,如果我尝试用这个类创建一个窗口:
class MyWindow(Gtk.ApplicationWindow):
def __init__(self, app):
Gtk.Window.__init__(self, title="MyTitle", application=app)
self.set_position(Gtk.WindowPosition.CENTER)
self.set_default_size(600, 500)
# application do_activate function
win = MyWindow(self)
win.show_all()
显示菜单。如何将菜单添加到从 Gtk.Builder 创建的窗口中?有没有更好的方法来实现这一点?
最佳答案
您的 glade 文件中的“window1”是一个 ApplicationWindow 吗? 使用 Application.set_menubar() 您可以指定将由 Gtk.ApplicationWindow 显示的菜单栏。
关于python - 从林间空地创建 Gtk.ApplicationWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42516445/