Can't set parent using GTK in Python.TypeError: argument parent: Expected Gtk.Window, but got __main__.function
Can't set parent using GTK in Python.TypeError: argument parent: Expected Gtk.Window, but got __main__.function
我正在尝试制作一个 GTK 程序来启动其他 child windows,但我似乎无法让 set_transient_for 工作。
我遇到问题的 window 目前称为 "about"。我试图将 __init__ 下的 window 设置为它的 parent,但是当我尝试使用 "About" 菜单时,我得到:
TypeError: argument parent: Expected Gtk.Window, but got __main__.function
这是我制作 window 的方法。
class App(Gtk.Window):
def __init__(self):
## Create window. ##
Gtk.Window.__init__(self, title="Simple Updater")
self.set_border_width(5)
self.set_resizable(False)
我使用 uimanager 创建了一些菜单并将它们打包在一个网格中。这是我如何调用我的 about window.
## Menu functions ##
def add_about_actions(self, action_group):
action_group.add_actions([
("About", None, "About"),
("About...", None, "About...", None, None, Windows.About)
])
我为我的 child windows 创建了另一个 class。这是我尝试将 parent 设置为 window __init__.
的地方
class Windows(Gtk.Window):
def About(self):
about = Gtk.Window(title="About")
about.set_border_width(10)
about.set_resizable(False)
about.set_transient_for(__init__)
我也试过:
about.set_transient_for(App.__init__)
下面是我设置 GTK 循环的方法。
top = App()
top.connect("delete-event", Gtk.main_quit)
top.show_all()
Gtk.main()
几个小时以来,我一直试图弄清楚发生了什么,但没有成功。任何帮助将不胜感激。
这是一个重复的问题:
您需要传递包含主要 window 对象的变量。
我正在尝试制作一个 GTK 程序来启动其他 child windows,但我似乎无法让 set_transient_for 工作。
我遇到问题的 window 目前称为 "about"。我试图将 __init__ 下的 window 设置为它的 parent,但是当我尝试使用 "About" 菜单时,我得到:
TypeError: argument parent: Expected Gtk.Window, but got __main__.function
这是我制作 window 的方法。
class App(Gtk.Window):
def __init__(self):
## Create window. ##
Gtk.Window.__init__(self, title="Simple Updater")
self.set_border_width(5)
self.set_resizable(False)
我使用 uimanager 创建了一些菜单并将它们打包在一个网格中。这是我如何调用我的 about window.
## Menu functions ##
def add_about_actions(self, action_group):
action_group.add_actions([
("About", None, "About"),
("About...", None, "About...", None, None, Windows.About)
])
我为我的 child windows 创建了另一个 class。这是我尝试将 parent 设置为 window __init__.
的地方class Windows(Gtk.Window):
def About(self):
about = Gtk.Window(title="About")
about.set_border_width(10)
about.set_resizable(False)
about.set_transient_for(__init__)
我也试过:
about.set_transient_for(App.__init__)
下面是我设置 GTK 循环的方法。
top = App()
top.connect("delete-event", Gtk.main_quit)
top.show_all()
Gtk.main()
几个小时以来,我一直试图弄清楚发生了什么,但没有成功。任何帮助将不胜感激。
这是一个重复的问题:
您需要传递包含主要 window 对象的变量。