python - 从林间空地创建 Gtk.ApplicationWindow

标签 python python-3.x gtk3 glade

我正在使用 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/

相关文章:

python - 如何处理 API 请求中的不同响应码?

python - 无法使用pydevd-pycharm连接到远程调试服务器

python - 想要将嵌套字典作为单个记录写入 SQL 表中(错误 : Not enough parameters for the SQL statement )

python - 使用张量计算错误值的梯度下降

linux - Vala - 如何使用 Soup 创建 HTTP 请求?

javascript - 使用 urllib2 指示 Python 单击按钮

Python:随时接受用户输入

gtk - GtkGLArea 小部件 (GTK+) 的 Vulkan 等价物是什么?

python - 函数调用栈 : train_function

c++ - 设置小部件初始大小