5.11. 附加组件 GUI 高级功能


pyanaconda 软件包包含多个帮助程序和工具函数,以及用于 hub 和 spoke 的结构。其中大多数位于 pyanaconda.ui.gui.utils 软件包中。

Hello World 附加组件示例演示了englightbox 内容管理器的用法,Anaconda 也使用它。此内容管理器可以将窗口置于 lightbox 中,以提高其可见性并聚焦它,以防止用户与底层窗口进行交互。为了演示此功能,示例附加组件包含一个打开新对话框窗口的按钮;对话框本身是一个继承于 GUIObject 类的特殊 HelloWorldDialog,其在 pyanaconda.ui.gui.init 中定义。

对话框类定义运行和销毁可通过 self.window 属性访问的内部 Gtk 对话框的 run 方法,该对话框使用具有同样含义的 mainWidgetName 类属性填充。因此,定义对话框的代码非常简单,如下例所示:

例 5.4. 定义 englightbox 对话框

        # every GUIObject gets ksdata in init
        dialog = HelloWorldDialog(self.data)

        # show dialog above the lightbox
        with self.main_window.enlightbox(dialog.window):
            dialog.run()
Copy to Clipboard Toggle word wrap

定义 englightbox 对话框 示例代码会创建一个对话框实例,然后使用 enlightbox 内容管理器在 lightbox 中运行对话框。上下文管理器有一个对 spoke 窗口的引用,只需要对话框的窗口来实例化对话框的 lightbox 。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat