PyGTK - नोटबुक क्लास

नोटबुक विजेट एक वर्जित कंटेनर है। इस कंटेनर में प्रत्येक टैब एक अलग पेज रखता है और पेज ओवरलैप्ड तरीके से देखे जाते हैं। टैब के लेबल पर क्लिक करके किसी भी वांछित पृष्ठ को दृश्यमान बनाया जाता है। लेबल को ऊपर या नीचे या बाईं या दाईं ओर प्रदर्शित होने के लिए कॉन्फ़िगर किया जा सकता है। एक कंटेनर विजेट अन्य विजेट के साथ रखा गया है या एक विजेट प्रत्येक पृष्ठ के नीचे रखा गया है।

यदि प्रदर्शित किया जाने वाला डेटा एक दृश्य में बहुत बड़ा है, तो इसे अलग-अलग पृष्ठों में समूहीकृत किया जाता है, प्रत्येक को नोटबुक विजेट के एक टैब के नीचे रखा जाता है। इस प्रकार का नियंत्रण बहुत व्यापक रूप से उपयोग किया जाता है। उदाहरण के लिए इंटरनेट ब्राउज़र, विभिन्न टैब में अलग-अलग पेजों को प्रस्तुत करने के लिए इस टैब्ड डिस्प्ले का उपयोग करता है।

निम्नलिखित gtk.Notebook वर्ग का एक निर्माता है -

gtk.Notebook()

Gtk.Notebook वर्ग के अक्सर उपयोग किए जाने वाले तरीके निम्नलिखित हैं -

  • append_page(child, label)- यह टैब पर लेबल के रूप में tab_label द्वारा निर्दिष्ट विजेट वाले नोटबुक में एक पृष्ठ जोड़ता है। यदि tab_label डिफ़ॉल्ट लेबल का उपयोग करने के लिए कोई नहीं हो सकता है।

  • insert_page(child, label, position) - यह स्थिति द्वारा निर्दिष्ट स्थान पर नोटबुक में एक पृष्ठ सम्मिलित करता है।

  • remove_page(index) - यह निर्दिष्ट इंडेक्स पर एक पेज निकालता है।

  • get_current_page() - यह वर्तमान पृष्ठ का पेज इंडेक्स लौटाता है।

  • set_current_page(index) - यह सूचकांक द्वारा निर्दिष्ट पृष्ठ संख्या पर स्विच करता है।

  • set_show_tabs()- यदि गलत है, तो टैब दिखाई नहीं देंगे। यह डिफ़ॉल्ट रूप से सही है।

  • set_tab_pos(pos)- यह उस किनारे को सेट करता है जिस पर नोटबुक में पृष्ठों को स्विच करने के लिए टैब खींचे जाते हैं। पूर्वनिर्धारित स्थिरांक हैं -

    • gtk.POS_LEFT

    • gtk.POS_RIGHT

    • gtk.POS_TOP

    • gtk.POS_BOTTOM

  • set_tab_label_text(child, text) - यह निर्दिष्ट पाठ के साथ एक नया लेबल बनाता है और इसे पृष्ठ वाले बच्चे के लिए टैब लेबल के रूप में सेट करता है।

Gtk.Notebook विजेट निम्नलिखित सिग्नल का उत्सर्जन करता है -

परिवर्तन वर्तमान-पेज जब पृष्ठ आगे या पृष्ठ पिछड़े अनुरोध जारी किया जाता है तो यह उत्सर्जित होता है
फोकस-टैब इसे तब केंद्रित किया जाता है जब टैबिंग द्वारा फ़ोकस को बदला जाता है।
पेज-योजित यह तब उत्सर्जित होता है जब किसी पृष्ठ को नोटबुक में जोड़ा जाता है।
पेज-हटाया नोटबुक से पृष्ठ हटाने के बाद यह उत्सर्जित होता है।
चयन-पेज नया चाइल्ड पेज चयनित होने पर यह उत्सर्जित होता है।
स्विच-पेज नोटबुक पृष्ठ बदलने पर यह उत्सर्जित होता है।

उदाहरण

निम्नलिखित उदाहरण में, तीन पृष्ठों वाला एक gtk.Notebook को एक जीटीएफ़एक्स gtk.Window में रखा गया है। पहला पृष्ठ एक VBox रखता है जिसमें एक लेबल और एंट्री फ़ील्ड पैक किया जाता है। 'योग्यता' लेबल वाले दूसरे पृष्ठ में एक HButtonBox है जिसमें तीन परस्पर अनन्य रेडियोबटन विजेट जोड़े गए हैं। तीसरे पृष्ठ में एक TextView ऑब्जेक्ट है। पृष्ठ लेबल शीर्ष पर प्रदर्शित होते हैं।

कोड का निरीक्षण करें -

import gtk
class PyApp(gtk.Window):
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Notebook Demo")
      self.set_default_size(250, 200)
		
      nb = gtk.Notebook()
      nb.set_tab_pos(gtk.POS_TOP)
      vbox = gtk.VBox(False, 5)
		
      vb = gtk.VBox()
      hbox = gtk.HBox(True, 3)
		
      valign = gtk.Alignment(0.5,0.25, 0, 0)
      lbl = gtk.Label("Name of student")
		
      vb.pack_start(lbl, True, True, 10)
      text = gtk.Entry()
		
      vb.pack_start(text, True, True, 10)
      valign.add(vb)
		
      vbox.pack_start(valign)
      nb.append_page(vbox)
      nb.set_tab_label_text(vbox, "Name")
      hb = gtk.HButtonBox()
		
      btn1 = gtk.RadioButton(None,"Degree")
      hb.add(btn1)
		
      btn2 = gtk.RadioButton(btn1,"P.G.")
      hb.add(btn2)
		
      btn3 = gtk.RadioButton(btn1,"Doctorate")
      hb.add(btn3)
		
      nb.append_page(hb)
      nb.set_tab_label_text(hb, "Qualification")
		
      tv = gtk.TextView()
      nb.append_page(tv)
      nb.set_tab_label_text(tv, "about")
		
      self.add(nb)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
if __name__ == '__main__':
   PyApp()
   gtk.main()

निष्पादन के बाद, उपरोक्त कोड तीन पृष्ठों के साथ एक नोटबुक प्रदर्शित करता है -