在已打开的窗口内打开一个窗口(Quickly/Glade)

在已打开的窗口内打开一个窗口(Quickly/Glade)

我有一个关于窗口和按钮实现的问题。如果我设置了一个工具栏,并且上面有一个按钮,是否可以让它在程序中打开一个窗口?我的意思是像 notepad1 函数那样打开程序的不同部分?或者我可以让它模仿系统设置的行为,在同一个窗口内完全打开一个窗口?如果您能帮忙,我将不胜感激。我正在使用默认的 glade 文件,希望这对任何人都有帮助。

答案1

我也在我的应用程序中这样做。我通过执行类似以下操作实现了此目的:

在主窗口中获取要用作父窗口的小部件的引用。它必须是的派生项GtkContainer(例如GtkBox)。在我的实例中,我在类构造函数中执行了类似以下操作:

self.itemAsMyContainer = self.builder.get_object("name_of_object_id")

然后,我使用 glade 创建另一个单独的 ui 文件,并以GtkContainer派生类(在我的情况下GtkBox)作为其顶级对象,然后以类似于 quick 的方式修改其类名。然后,我以类似于 quick_lib/Window.py模板的方式为其创建了一个单独的类。完成后,我可以简单地实例化这个新类,并使用如下代码将其附加到我引用的容器中:

self.my_sub_ui = MySexyGtkContainerSubClass()
self.itemAsMyContainer.pack_start(self.my_sub_ui)

我相信这种方法也可以用于另一个窗口,但你可能需要取消它的父级。有关更多信息,请参阅此问题这里

相关内容