PyGTK - स्टेटसबार क्लास

एक अधिसूचना क्षेत्र, आमतौर पर एक खिड़की के नीचे स्थिति पट्टी कहा जाता है। किसी भी प्रकार की स्थिति परिवर्तन संदेश स्थिति पट्टी पर प्रदर्शित किया जा सकता है। इसकी एक पकड़ भी है जिसका उपयोग करके इसे आकार दिया जा सकता है।

Gtk.Statusbar विजेट संदेशों का ढेर रखता है। इसलिए, वर्तमान संदेश के शीर्ष पर नया संदेश प्रदर्शित होता है। यदि यह पॉप अप होता है, तो पहले वाला संदेश फिर से दिखाई देगा। संदेश का स्रोत इसे विशिष्ट रूप से पहचानने के लिए reference_id द्वारा पहचाना जाना चाहिए।

निम्नलिखित gtk.Statusbar विजेट का निर्माता है -

bar = gtk.Statusbar()

Gtk.Statusbar वर्ग के तरीके निम्नलिखित हैं -

  • Statusbar.push(context_id, text) - यह एक स्टेटसबार के स्टैक पर एक नया संदेश देता है।

  • Statusbar.pop(context_id) - यह निर्दिष्ट के साथ शीर्ष संदेश को हटा देता है context_id स्टेटसबार के ढेर से।

निम्न संकेतों को स्थिति पट्टी विजेट द्वारा उत्सर्जित किया जाता है -

पाठ पॉपअप यह तब उत्सर्जित होता है जब किसी संदेश को स्टेटसबार संदेश स्टैक से हटा दिया जाता है।
पाठ धक्का दिया यह तब उत्सर्जित होता है जब किसी संदेश को स्टेटसबार संदेश स्टैक में जोड़ा जाता है।

निम्न उदाहरण स्थिति पट्टी के कामकाज को दर्शाता है। टॉपलेवल विंडो में दो पंक्तियों के साथ एक VBox होता है। ऊपरी पंक्ति में एक निश्चित विजेट होता है जिसमें एक लेबल, एक एंट्री विजेट और एक बटन लगा होता है। जबकि, निचली पंक्ति में, एक gtk.Statusbar विजेट जोड़ा जाता है।

संदेश को स्थिति पट्टी पर भेजने के लिए, इसके संदर्भ_ को लाने की आवश्यकता है।

id1 = self.bar.get_context_id("Statusbar")

बटन ऑब्जेक्ट का 'क्लिक किया गया' सिग्नल एक कॉलबैक फ़ंक्शन से जुड़ा है, जिसके माध्यम से एक संदेश स्थिति पट्टी में धकेल दिया जाता है। और, एंट्री विजेट के अंदर एंटर की दबाए जाने पर 'एक्टिवेट' सिग्नल उत्सर्जित होता है। यह विजेट दूसरे कॉलबैक से जुड़ा है।

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()

निष्पादन के बाद, उपरोक्त कोड निम्नलिखित आउटपुट प्रदर्शित करेगा -

टेक्स्ट बॉक्स में टाइप करने की कोशिश करें और स्टेटस बार में 'टेक्स्ट एंटर' संदेश देखने के लिए एंटर दबाएं।