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 키를 눌러 상태 표시 줄에 '텍스트 입력'메시지를 확인합니다.