PyGTK-상태 표시 줄 클래스
일반적으로 창 하단에있는 알림 영역을 상태 표시 줄이라고합니다. 모든 유형의 상태 변경 메시지는 상태 표시 줄에 표시 될 수 있습니다. 또한 크기를 조정할 수있는 그립이 있습니다.
gtk.Statusbar 위젯은 메시지 스택을 유지합니다. 따라서 현재 메시지 위에 새 메시지가 표시됩니다. 팝업되면 이전 메시지가 다시 표시됩니다. 메시지 소스는 고유하게 식별하기 위해 context_id로 식별되어야합니다.
다음은 gtk.Statusbar 위젯의 생성자입니다.
bar = gtk.Statusbar()
다음은 gtk.Statusbar 클래스의 메소드입니다.
Statusbar.push(context_id, text) − 이것은 상태 표시 줄의 스택에 새 메시지를 푸시합니다.
Statusbar.pop(context_id) − 이것은 지정된 최상위 메시지를 제거합니다. context_id 상태 표시 줄의 스택에서.
다음 신호는 상태 표시 줄 위젯에 의해 방출됩니다-
텍스트 팝업 | 이는 상태 표시 줄 메시지 스택에서 메시지가 제거 될 때 발생합니다. |
텍스트 푸시 | 상태 표시 줄 메시지 스택에 메시지가 추가 될 때 발생합니다. |
다음 예제는 상태 표시 줄의 기능을 보여줍니다. 최상위 창에는 두 개의 행이있는 VBox가 있습니다. 상단 행에는 레이블, 항목 위젯 및 버튼이 놓인 고정 위젯이 있습니다. 반면 맨 아래 행에는 gtk.Statusbar 위젯이 추가됩니다.
상태 표시 줄에 메시지를 보내려면 해당 context_id를 가져와야합니다.
id1 = self.bar.get_context_id("Statusbar")
Button 객체의 'clicked'신호는 상태 표시 줄에 메시지가 푸시되는 콜백 함수에 연결됩니다. 그리고 Entry 위젯 내에서 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 키를 눌러 상태 표시 줄에 '텍스트 입력'메시지를 확인합니다.