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 对象的变量。