Linux で PyGobject ツールを使用して高度な GUI アプリケーションを作成する - パート 2
PyGObject を使用して Linux デスクトップで GUI アプリケーションを作成するシリーズを続けます。これはシリーズの 2 番目の部分で、今日はいくつかの高度なウィジェットを使用して、より機能的なアプリケーションを作成する方法について説明します。
要件
- PyGObject を使用して Linux で GUI アプリケーションを作成する – パート 1
前回の記事では、PyGObject を使用して GUI アプリケーションを作成するには、コードのみの方法 とGlade デザイナーの方法の 2 つの方法があると述べました。 、しかし、 ここからはGlade デザイナーの方法のみを説明します。これは、ほとんどのユーザーにとってははるかに簡単であり、python-gtk3-tutorial を使用してコードのみの方法を自分で学ぶことができます。
Linux での高度な GUI アプリケーションの作成
1. プログラミングを始めましょう!アプリケーション メニューからGlade デザイナーを開きます。
2. 新しいウィンドウを作成するには、左側のサイドバーにある [ウィンドウ ] ボタンをクリックします。
3. 「ボックス 」ウィジェットをクリックし、空のウィンドウで放します。
4. 希望するボックスの数を入力するように求められます。3 にします。
ボックス が作成されていることがわかります。これらのボックスは、ウィンドウに 1 個以上のウィジェットを追加できるようにするために重要です。
5. 次に、ボックス ウィジェットをクリックし、方向のタイプを垂直 から 水平 に変更します。
6. 簡単なプログラムを作成するには、「テキスト入力 」、「コンボボックステキスト 」、および「ボタン」を追加します。 」ボックスごとにウィジェットを追加すると、次のようなものが必要になります。
7. 次に、右側のサイドバーから「window1 」ウィジェットをクリックし、位置を「Center」に変更します。
「外観 」セクションまで下にスクロールします。そして、ウィンドウ「マイ プログラム」のタイトルを追加します。
8. [アイコン名 ] ボックスをクリックして、ウィンドウのアイコン を選択することもできます。
9. アプリケーションのデフォルトの高さ と 幅 を変更することもできます。すべてを終えると、次のようになります。
どのプログラムでも、最も重要なことの 1 つは、「About 」ウィンドウを作成することです。これを行うには、まず、前に作成した通常のボタンをストック ボタンに変更する必要があります。その写真。
10. 次に、ウィジェットでイベントが発生したときに特定のアクションを実行するために、いくつかのシグナルを変更する必要があります。 テキスト入力 ウィジェットをクリックし、右側のサイドバーの [シグナル ] タブに切り替え、「アクティブ化 」を検索して、そのハンドラーを次のように変更します。 「enter_button_clicked 」、「activated 」シグナルは、テキストにフォーカスしているときに「Enter」 キーが押されたときに送信されるデフォルトのシグナルです。エントリーウィジェット。
About ボタン ウィジェットの「clicked」信号用の別のハンドラーを追加し、それをクリックして「clicked」信号を「button_is_clicked」に変更する必要があります。 」。
11. [共通 ] タブに移動し、次のように [フォーカスあり ] にマークを付けます ([バージョン情報] ボタンにデフォルトのフォーカスを与えるため)エントリの代わりに)。
12. 次に、左側のサイドバーから、新しい [About Dialog ] ウィンドウを作成します。
「About ダイアログ 」ウィンドウが作成されていることがわかります。
変更しましょう。右側のサイドバーから次の設定を挿入してください。
上記の設定を行うと、Window については以下のようになります。
上のウィンドウでは空のスペースが見えますが、ボックスの数を 3 から 2 に減らして空のスペースを削除したり、必要に応じてウィジェットを追加したりできます。
13. 次に、ファイルをホーム フォルダに「ui.glade 」という名前で保存し、テキスト エディタを開いてその中に次のコードを入力します。
#!/usr/bin/python
-*- coding: utf-8 -*-
from gi.repository import Gtk
class Handler:
def button_is_clicked(self, button):
## The ".run()" method is used to launch the about window.
ouraboutwindow.run()
## This is just a workaround to enable closing the about window.
ouraboutwindow.hide()
def enter_button_clicked(self, button):
## The ".get_text()" method is used to grab the text from the entry box. The "get_active_text()" method is used to get the selected item from the Combo Box Text widget, here, we merged both texts together".
print ourentry.get_text() + ourcomboboxtext.get_active_text()
## Nothing new here.. We just imported the 'ui.glade' file.
builder = Gtk.Builder()
builder.add_from_file("ui.glade")
builder.connect_signals(Handler())
ournewbutton = builder.get_object("button1")
window = builder.get_object("window1")
## Here we imported the Combo Box widget in order to add some change on it.
ourcomboboxtext = builder.get_object("comboboxtext1")
## Here we defined a list called 'default_text' which will contain all the possible items in the Combo Box Text widget.
default_text = [" World ", " Earth ", " All "]
## This is a for loop that adds every single item of the 'default_text' list to the Combo Box Text widget using the '.append_text()' method.
for x in default_text:
ourcomboboxtext.append_text(x)
## The '.set.active(n)' method is used to set the default item in the Combo Box Text widget, while n = the index of that item.
ourcomboboxtext.set_active(0)
ourentry = builder.get_object("entry1")
## This line doesn't need an explanation :D
ourentry.set_max_length(15)
## Nor this do.
ourentry.set_placeholder_text("Enter A Text Here..")
## We just imported the about window here to the 'ouraboutwindow' global variable.
ouraboutwindow = builder.get_object("aboutdialog1")
## Give that developer a cookie !
window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main
ファイルを「myprogram.py 」という名前でホーム ディレクトリに保存し、実行権限を与えて実行します。
$ chmod 755 myprogram.py
./myprogram.py
This is what you will get, after running above script.
入力ボックスにテキストを入力し、キーボードの「Enter 」キーを押すと、その文がシェルに表示されることがわかります。
現時点ではこれですべてです。完全なアプリケーションではありませんが、PyGObject を使用してリンクする方法を示したかっただけです。すべての GTK ウィジェットのすべてのメソッドを参照できます。 gtkoオブジェクト。
方法を学び、Glade を使用してウィジェットを作成し、Python ファイルを使用して信号を接続するだけです。それはまったく難しいことではありません、友達。
シリーズの次のパートでは、PyGObject に関するさらに新しい点について説明します。それまで最新の情報を入手し、記事に関するコメントをお寄せください。