Pygtk-statusbar-class
PyGTK-ステータスバークラス
通常、ウィンドウの下部にある通知領域は、ステータスバーと呼ばれます。 あらゆる種類のステータス変更メッセージをステータスバーに表示できます。 また、グリップを使用してサイズを変更できます。
gtk.Statusbarウィジェットは、メッセージのスタックを維持します。 したがって、現在のメッセージの上に新しいメッセージが表示されます。 ポップされると、以前のメッセージが再び表示されます。 メッセージのソースは、context_idで識別して一意に識別する必要があります。
以下は、gtk.Statusbarウィジェットのコンストラクタです-
bar = gtk.Statusbar()
以下は、gtk.Statusbarクラスのメソッドです-
- * Statusbar.push(context_id、text)*-これは新しいメッセージをステータスバーのスタックにプッシュします。
- * Statusbar.pop(context_id)-これは、ステータスバーのスタックから指定された *context_id を持つトップメッセージを削除します。
次の信号は、Statusbarウィジェットによって発行されます-
text-popped | This is emitted when a message is removed from the statusbar message stack. |
text-pushed | This is emitted when a message is added to the statusbar message stack. |
次の例は、ステータスバーの機能を示しています。 トップレベルウィンドウには、2行のVBoxが含まれています。 上の行には、ラベル、入力ウィジェット、およびボタンが配置される固定ウィジェットがあります。 一方、一番下の行には、gtk.Statusbarウィジェットが追加されています。
メッセージをステータスバーに送信するには、context_idを取得する必要があります。
id1 = self.bar.get_context_id("Statusbar")
Buttonオブジェクトの「クリック」信号は、ステータスバーにメッセージがプッシュされるコールバック関数に接続されます。 また、入力ウィジェット内でEnterキーが押されると、「アクティブ化」シグナルが発行されます。 このウィジェットは別のコールバックに接続されています。
btn.connect("clicked", self.on_clicked, id1)
txt.connect("activate", self.on_entered, id1)
両方のコールバックは* push()*メソッドを使用して、通知領域のメッセージをフラッシュします。
例
次のコードを観察してください-
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Statusbar demo")
self.set_size_request(400,200)
self.set_position(gtk.WIN_POS_CENTER)
vbox = gtk.VBox()
fix = gtk.Fixed()
lbl = gtk.Label("Enter name")
fix.put(lbl, 175, 50)
txt = gtk.Entry()
fix.put(txt, 150, 100)
btn = gtk.Button("ok")
fix.put(btn, 200,150)
vbox.add(fix)
self.bar = gtk.Statusbar()
vbox.pack_start(self.bar, True, False, 0)
id1 = self.bar.get_context_id("Statusbar")
btn.connect("clicked", self.on_clicked, id1)
txt.connect("activate", self.on_entered, id1)
self.add(vbox)
self.connect("destroy", gtk.main_quit)
self.show_all()
def on_clicked(self, widget, data=None):
self.bar.push(data, "Button clicked
def on_entered(self, widget, data):
self.bar.push(data, "text entered")
PyApp()
gtk.main()
実行すると、上記のコードは次の出力を表示します-
テキストボックスに入力してEnterキーを押すと、ステータスバーに「テキストが入力されました」というメッセージが表示されます。