Python Gtk+;3 Window.present不能与GNOME Builder一起使用
环境:Python Gtk+;3 Window.present不能与GNOME Builder一起使用,python,gtk,gtk3,Python,Gtk,Gtk3,环境: Ubuntu Gnome 16.04.3 GNOME生成器3.26.3 GNOME生成器生成的项目使用GtkTemplate来解释ui,但我将其更改为使用Gtk.Builder来解释。修改后,它不工作。 我看不到任何错误消息 class Application(Gtk.Application): def __init__(self): super().__init__(application_id='org.gnome.Ee',
- Ubuntu Gnome 16.04.3
- GNOME生成器3.26.3
class Application(Gtk.Application):
def __init__(self):
super().__init__(application_id='org.gnome.Ee',
flags = Gio.ApplicationFlags.FLAGS_NONE)
def do_startup(self):
print('do_startup')
Gtk.Application.do_startup(self)
builder = Gtk.Builder()
builder.add_from_resource("/org/gnome/Ee/window.ui")
print(builder)
self.builder = builder
def do_activate(self):
print("do_activate")
win = self.props.active_window
if not win:
win = self.builder.get_object("EeWindow")
print(win)
win.present() # not work, can not see the window
我已将演示代码上载到Github:
任何帮助都将不胜感激 应用程序不知道该窗口,因此它会立即退出。您需要在创建窗口实例后调用
win.set\u应用程序(self)
。您的git历史记录无法显示您所做的修改。您是否尝试过将win.present()
替换为win.show_all()
?@liberforce抱歉,我已重新上载了包含修改历史记录的项目。你现在可以查一下。谢谢win.show_all()
不起作用。非常感谢!还有一个问题,为什么这个demo()可以工作?它没有显式地创建Gtk.Application
,因此调用Gtk.main()
,而不是Application.run()
。