5.6.2.2. 高度な機能


pyanaconda にはスポークやハブが使用するヘルパーやユーティリティー関数、コンストラクトが含まれており、これらはここまでのセクションで説明されていません。ほとんどのものは、pyanaconda.ui.gui.utils にあります。
サンプルの Hello World アドオン では englightbox で使用する englightbox コンテンツマネージャーの使用方法が説明されています。このマネージャーはウィンドウをライトボックスにおいて視認性を高めてフォーカスし、ユーザーが下層のウィンドウと対話しないようにします。この機能を示すために、サンプルアドオンには新しいダイアログウィンドウを開くボタンが含まれています。ダイアログ自体は、pyanaconda.ui.gui.__init__ で定義される GUIObject クラスから継承される特別な HelloWorldDialog です。
dialog クラスは、self.window 属性を介してアクセス可能な内部 Gtk ダイアログを実行および破棄する run メソッドを定義します。この属性は、同じ意味の mainWidgetName クラス属性を使用して設定されます。そのため、以下の例のようにダイアログを定義するコードは非常にシンプルです。

例13 englightbox Dialog の定義

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

# show dialog above the lightbox
with enlightbox(self.window, dialog.window):
    dialog.run()
上記のコードはダイアログのインスタンスを作成し、enlightbox コンテキストマネージャーを使用してライトボックス内でそのダイアログを実行します。コンテキストマネージャーは、スポークのウィンドウとダイアログのウィンドウのライトボックスをインスタンス化するためにこれらのウィンドウへの参照を必要とします。
Anaconda が提供するもう 1 つの便利な機能は、インストール中と 最初 の再起動後の両方に表示されるスポークを定義する機能です (「初回起動と初期設定」)。Anaconda および Initial Setup の両方でスポークを利用可能にするには、特別な FirstbootSpokeMixIn (より正確には mixin) を、pyanaconda.ui.common モジュールで定義されている最初の継承クラスとして継承する必要があります。
特定のスポークを Initial Setupのみ 利用可能とするには、FirstbootOnlySpokeMixIn クラスを継承します。
pyanaconda パッケージによって提供されるさらに多くの高度な機能があります (@gtk_action_wait@gtk_action_nowaitデコレータ) ですが、このガイドの範囲外です。例については インストーラーのソース を参照してください。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.