Glade と GTK+ を使用して Python で最初の GUI を作成する
見栄えの良い GUI アプリを作成する簡単な方法をお探しですか? Python、GTK+、および Glade がその仕事を行うことができます。
重要なポイント
- Python 開発者は GTK+ と Glade を使用して、ビジュアル インターフェイスを使用した直感的な GUI を作成できます。
- この例の環境のセットアップには、Python、GTK+、Glade、および PyGObject のインストールが含まれます。
- Python GUI 開発に GTK+ と Glade を使用すると、プロセスが高速化され、GUI 設計がコードから分離されます。
Python は、データ分析や Web 開発に最適な、アクセスしやすい言語です。しかし、これは GUI アプリ開発にも最適です。 GTK+ と Glade は、シンプルなクロスプラットフォーム アプリを作成するプロセスを簡素化します。
Python 開発者向けの GTK+ および Glade インターフェイス デザイナー
GTK+ (GIMP Toolkit) と Glade Interface Designer は、直感的で快適なグラフィカル ユーザー インターフェイスを作成したい Python 開発者にとって素晴らしい組み合わせです。
GTK+ は、GUI 開発に使用できるマルチプラットフォーム ツールキットです。 Linux、Windows、macOS などのさまざまなオペレーティング システムと互換性があります。
GTK+ のコンパニオン ツールである Glade Interface Designer を使用すると、レイアウト コードを記述せずに GUI を設計できます。これを使用すると、数回のクリックと簡単なドラッグ アンド ドロップ機能で WYSIWYG 環境で GUI を作成できます。
GTK+ および Glade 開発用の Python 環境のセットアップ
環境のセットアップは、スムーズで効率的なワークフローを確保するための重要な最初のステップです。
1.Pythonをインストールする
まず、システムに Python がインストールされていることを確認します。 Python 3 のコードは、GTK+ と Glade のサポートと統合が強化されているため、読んだ例に含まれています。 Linux および macOS の場合、通常、Python はプリインストールされています。
Windows ユーザーは、Python の公式 Web サイトから Python をダウンロードできます。
2.GTK+をインストールする
パッケージ マネージャーを使用して GTK+ をインストールできます。
Ubuntu および Debian ベースの Linux システムの場合は、以下を使用します。
sudo apt-get install libgtk-3-dev
Fedora などの場合:
sudo dnf install gtk3-devel
macOS で Homebrew を使用する場合:
brew install gtk+3
Windows ユーザーは、GTK の公式ダウンロード ページから GTK+ をダウンロードできます。ただし、MSYS2 がインストールされている場合は、MSYS2 コマンド ラインを開いて次のコマンドを使用できます。
pacman -S mingw-w64-x86_64-python-gobject
3. Gladeをインストールする
コマンドラインを使用して Glade をインストールできます。
Ubuntu および Debian ベースの Linux ディストリビューションの場合:
sudo apt-get install glade
Fedora の場合:
sudo dnf install glade
macOS ユーザーは Homebrew を使用できます。
brew install glade
Windows ユーザーは、MSYS2 で次のコマンドを使用できます。
pacman -S mingw-w64-x86_64-glade
4. GTK+ の Python バインディング
GTK+ を Python と統合するには、PyGObject をインストールします。これに使用するコマンドは次のとおりです。
pip install PyGObject
PyGObject のインストール中に「Building Wheel for pycairo (pyproject.toml) が実行されませんでした」などのエラーが発生した場合は、cairo パッケージもインストールする必要があります。
Ubuntu および Debian ベースの Linux ディストリビューションの場合:
sudo apt-get install libcairo2-dev
Fedora の場合:
sudo yum install cairo-devel
macOS の場合:
brew install pygobject3
5. 仮想環境のセットアップ (オプション)
Python プロジェクトには仮想環境を使用することをお勧めします。これにより、プロジェクトの依存関係が分離されます。次のターミナル コマンドを使用して、Linux 上で仮想環境を作成し、アクティブ化します。
python -m venv myenv
source myenv/bin/activate
Windows では次を使用します。
python -m venv myenv
myenv\Scripts\activate
macOS では、仮想環境が brew がインストールするパッケージにアクセスできることを確認するには、次を使用します。
python -m venv --system-site-packages myenv
source myenv/bin/activate
6. インストールの確認
GTK+ と Glade がインストールされていることを確認するには、GTK をインポートする簡単な Python スクリプトを作成します。
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
print("GTK+ version:", Gtk.get_major_version(), Gtk.get_minor_version())
このスクリプトを実行すると、インストールされている GTK+ のバージョンが出力されます。すべてがうまくいけば、開発環境のセットアップは完了です。
Glade Interface Designer と Python を使用したシンプルな GUI アプリの作成
Glade Interface Designer で GUI アプリを設計し、レイアウトをプロジェクト ファイルとしてエクスポートできます。これで、Python コードからそのプロジェクト ファイルにアクセスできるようになります。
Glade を使用した GUI の設計
Glade のドラッグ アンド ドロップ インターフェイスにより、基礎となるコードに行き詰まることなく、設計に集中することが容易になります。システムのアプリケーション メニューまたはコマンド ラインから次のコマンドを使用して Glade を起動します。
glade
Glade インターフェイスが表示され、GUI レイアウトの作成を開始できます。
左上の 新しいプロジェクトの作成 ボタンは、GUI デザイン用の空のキャンバスを提供します。 Glade の上部バーには、ボタン、テキスト入力、ラベルなどのさまざまなウィジェットが用意されています。これらのウィジェットをキャンバスにドラッグして、GUI のスタイルを開始します。デザインのニーズに応じてウィジェットのサイズを変更したり、配置したりできます。
まず、トップレベルメニューからGtkWindowウィジェットを選択します。
Glade の右側のバーにある [全般] ページに、ID オプションが表示されます。この ID は、追加したウィジェットの一意の名前です。この例では、追加した GtkWindow に ID myMainWindow を割り当てます。
作成したメイン ウィンドウにウィジェットを追加できるようになりました。上部バーのコンテナに移動し、GtkBoxウィジェットを選択して、ワークスペースにドラッグします。次に、myMainBox という ID を付けます。
GtkBox ウィジェットを追加すると、ワークスペースの右側に、そのウィジェットに固有のさまざまなオプションが表示されます。コードを書かずに、ここでデザイン全体を編集できます。
次に、コントロール ウィジェットをデザインに追加します。これを行うには、上部バーのコントロールに移動し、例としてGtkButtonを選択し、GtkBox内の任意の場所にドラッグします。 ID として myButton を指定します。必要に応じて、右側のパネルの全般 タブを使用してボタンのテキストを変更することもできます。
GtkButton はクリック可能なウィジェットなので、Python ハンドラーを定義して、後で適切なコードを記述することができます。右側のメニューのシグナル タブに移動し、クリックされたシグナルのハンドラーを指定します。この例では、それをon_button_clicked と呼びます。
GUI デザインをプロジェクト ファイルとして保存できるようになりました。ファイルをmyDesign.gladeという名前で保存します。
Python コードからの Glade 設計ファイルの使用
myDesign.glade ファイルと同じディレクトリに app.py ファイルを作成します。次のコードをこのファイルに貼り付けます。
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
from gi.repository import Gdk
class MyApp:
def __init__(self):
# Load the Glade file to construct the GUI
self.builder = Gtk.Builder()
self.builder.add_from_file("myDesign.glade")
# Retrieve the main window from Glade and set up the close event
self.window = self.builder.get_object("myMainWindow")
self.window.connect("destroy", Gtk.main_quit)
# Retrieve the button from Glade and connect the click event
self.button = self.builder.get_object("myButton")
self.button.connect("clicked", self.on_button_clicked)
# Variable to toggle the background color
self.color_toggle = False
def on_button_clicked(self, widget):
# Click the button and the background color will change
color = "#FF0000" if self.color_toggle else "#00FF00"
self.window.modify_bg(Gtk.StateType.NORMAL, Gdk.color_parse(color))
self.color_toggle = not self.color_toggle
def run(self):
self.window.show_all()
Gtk.main()
if __name__ == "__main__":
app = MyApp()
app.run()
このコードは、ボタンをクリックするたびに背景の色を変更します。 Glade で定義したウィジェットの ID を渡すself.builder.get_object() の呼び出しに注目してください。
次のコマンドを使用して Python スクリプトを実行し、結果を確認します。
python3 app.py
Python GUI 開発に GTK+ と Glade を使用する利点
Python GUI 開発に GTK+ と Glade を使用すると、明らかなメリットが得られます。通常、GUI の作成には多くの時間と労力がかかります。しかし、Glade Interface Designer を使用すると、プロセスをスピードアップできます。 Glade は、例のボタンと同じくらい使いやすいさまざまなウィジェットも提供しています。
Glade の主な利点は、GUI デザインをコードから分離できることです。これにより、GUI の保守と更新が簡単になります。このアプローチにより、最新のプログラミング手法に沿った、よりクリーンでより適切に編成されたコードが得られます。