PyGTK - पैनड क्लास

पैनड क्लास विगेट्स के लिए बेस क्लास है जो दो समायोज्य पैन को क्षैतिज रूप से प्रदर्शित कर सकता है (gtk.Hpaned) या लंबवत (gtk.Vpaned)। पैन 1 के लिए चाइल्ड विजेट्स को pack1 () और pack2 () विधियों का उपयोग करके जोड़ा जाता है।

पैनड विजेट दो पैन के बीच एक विभाजक स्लाइडर खींचता है और उनके सापेक्ष चौड़ाई / ऊंचाई को समायोजित करने के लिए एक हैंडल प्रदान करता है। यदि फलक के अंदर चाइल्ड विजेट की रिसाइज़ प्रॉपर्टी ट्रू पर सेट है, तो यह पैन के आकार के अनुसार आकार बदल जाएगा।

निम्नलिखित तरीके HPaned के साथ-साथ VPaned वर्ग के लिए उपलब्ध हैं -

  • Paned.add1 (बच्चा) - यह निर्दिष्ट विजेट को जोड़ता है child ऊपर या बाएँ फलक पर

  • Paned.add2 (बच्चा) - यह द्वारा निर्दिष्ट विजेट जोड़ता है child नीचे या दाएँ फलक में।

  • Paned.pack1 (बच्चे, आकार, सिकुड़ना) - यह द्वारा निर्दिष्ट विजेट जोड़ता है childमापदंडों के साथ शीर्ष या बाएँ फलक पर। अगरresize है True, childपैन किए गए विजेट का आकार बदलने पर आकार बदलना चाहिए। अगरshrink है True, child अपने न्यूनतम आकार के अनुरोध से छोटा किया जा सकता है।

  • Paned.pack2 (बच्चा, आकार, सिकुड़ना) - यह दो पैन के बीच विभक्त की स्थिति निर्धारित करता है।

दोनों प्रकार के पैनड विगेट्स निम्नलिखित संकेतों का उत्सर्जन करते हैं -

स्वीकार स्थिति यह कब उत्सर्जित होता है paned फोकस के कारण बच्चे के विजेट सक्रिय होने पर ध्यान केंद्रित होता है।
रद्द स्थिति यह उत्सर्जित होता है जब Esc कुंजी दबाया जाता है, जबकि paned ध्यान केंद्रित किया है।
कदम-संभाल यह कब उत्सर्जित होता है paned फोकस और विभाजक को स्थानांतरित कर दिया गया है।

उदाहरण

निम्न उदाहरण gtk.Hpaned विजेट का उपयोग करता है। बाएँ फलक में, एक TreeView विजेट जोड़ा गया है, और दाएँ फलक में, एक TextView विजेट है। जब ट्रीव्यू में किसी भी पंक्ति का चयन किया जाता है, तो यह row_activated सिग्नल का उत्सर्जन करेगा जो कॉलबैक फ़ंक्शन से जुड़ा होता है। on_activated()function पंक्ति के पाठ को पुनः प्राप्त करता है और पाठ दृश्य पैनल में प्रदर्शित करता है।

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

import gtk, gobject

class PyApp(gtk.Window):
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("HPaned widget Demo")
      self.set_default_size(250, 200)
      vp = gtk.HPaned()
      sw = gtk.ScrolledWindow()
      sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 
		
      tree = gtk.TreeView()
      languages = gtk.TreeViewColumn()
      languages.set_title("GUI Toolkits")
      cell = gtk.CellRendererText()
      languages.pack_start(cell, True)
      languages.add_attribute(cell, "text", 0)
      treestore = gtk.TreeStore(str)
      it = treestore.append(None, ["Python"])
		
      treestore.append(it, ["PyQt"])
      treestore.append(it, ["wxPython"])
      treestore.append(it, ["PyGTK"])
      treestore.append(it, ["Pydide"])
		
      it = treestore.append(None, ["Java"])
      treestore.append(it, ["AWT"])
      treestore.append(it, ["Swing"])
      treestore.append(it, ["JSF"])
      treestore.append(it, ["SWT"])
		
      tree.append_column(languages)
      tree.set_model(treestore)
		
      vp.add1(tree)
      self.tv = gtk.TextView()
      vp.add2(self.tv)
      vp.set_position(100)
      self.add(vp)
		
      tree.connect("row-activated", self.on_activated)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
		
   def on_activated(self, widget, row, col):
      model = widget.get_model()
      text = model[row][0]
      print text
		
      buffer = gtk.TextBuffer()
      buffer.set_text(text+" is selected")
      self.tv.set_buffer(buffer)

if __name__ == '__main__':
   PyApp()
   gtk.main()

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