PyGTK - स्क्रॉलबार क्लास

यह वर्ग gtk.Hscrollbar और gtk.Vscrollbar विजेट के लिए एक सार आधार वर्ग है। दोनों एक समायोजन वस्तु के साथ जुड़े हुए हैं। स्क्रॉलबार के अंगूठे की स्थिति को स्क्रॉल समायोजन द्वारा नियंत्रित किया जाता है। समायोजन वस्तु की विशेषताओं का उपयोग निम्नानुसार किया जाता है -

कम स्क्रॉल क्षेत्र का न्यूनतम मूल्य
अपर स्क्रॉल क्षेत्र का अधिकतम मूल्य
मूल्य स्क्रॉलबार की स्थिति का प्रतिनिधित्व करता है, जो निचले और ऊपरी के बीच होना चाहिए
पृष्ठ आकार दृश्यमान स्क्रॉल योग्य क्षेत्र के आकार का प्रतिनिधित्व करता है
step_increment स्क्रॉल करने के लिए दूरी जब छोटे स्टेपर तीर क्लिक किए जाते हैं
page_increment स्क्रॉल करने के लिए दूरी जब Page Up या Page Down कुंजी दबाया

निम्न कार्यक्रम एक एचएसकेल और एक एचएसक्रोलबार विजेट को वोकल विंडो में जोड़े गए वीबॉक्स में रखा गया दिखाता है। उनमें से प्रत्येक एक समायोजन वस्तु के साथ जुड़ा हुआ है।

adj1 = gtk.Adjustment(0, 0, 101, 0.1, 1, 1)
self.adj2 = gtk.Adjustment(10,0,101,5,1,1)

एक gtk.HScale विजेट एक स्लाइडर नियंत्रण है जो adj1 के साथ जुड़ा हुआ है। इसकी अद्यतन नीति, संख्या और ड्राइंग मान की स्थिति निम्नानुसार है -

scale1 = gtk.HScale(adj1)
scale1.set_update_policy(gtk.UPDATE_CONTINUOUS)
scale1.set_digits(1)
scale1.set_value_pos(gtk.POS_TOP)
scale1.set_draw_value(True)

gtk.HScrollbar एक क्षैतिज स्क्रॉलबार प्रदान करता है। यह adj2 ऑब्जेक्ट के साथ जुड़ा हुआ है। इसकी अद्यतन नीति भी CONTINUOUS पर सेट है।

self.bar1 = gtk.HScrollbar(self.adj2)
self.bar1.set_update_policy(gtk.UPDATE_CONTINUOUS)

स्क्रॉलबार के तात्कालिक मूल्य को प्रदर्शित करने के लिए, 'मूल्य-परिवर्तित' संकेत the adjustment object — adj2 कॉलबैक फ़ंक्शन से जुड़ा है on_scrolled()। फ़ंक्शन समायोजन ऑब्जेक्ट का मान गुण प्राप्त करता है और स्क्रॉलबार के नीचे एक लेबल पर प्रदर्शित करता है।

self.adj2.connect("value_changed", self.on_scrolled)
   def on_scrolled(self, widget, data = None):
   self.lbl2.set_text("HScrollbar value: "+str(int(self.adj2.value)))

उदाहरण

निम्नलिखित कोड देखें -

import gtk

class PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Range widgets Demo")
      self.set_default_size(250, 200)
      self.set_position(gtk.WIN_POS_CENTER)
      
      adj1 = gtk.Adjustment(0.0, 0.0, 101.0, 0.1, 1.0, 1.0)
      self.adj2 = gtk.Adjustment(10,0,101,5,1,1)
      
      scale1 = gtk.HScale(adj1)
      scale1.set_update_policy(gtk.UPDATE_CONTINUOUS)
      scale1.set_digits(1)
      scale1.set_value_pos(gtk.POS_TOP)
      scale1.set_draw_value(True)
      
      vb = gtk.VBox()
      vb.add(scale1)
      lbl1 = gtk.Label("HScale")
      
      vb.add(lbl1)
      self.bar1 = gtk.HScrollbar(self.adj2)
      self.bar1.set_update_policy(gtk.UPDATE_CONTINUOUS)
      vb.add(self.bar1)
      self.lbl2 = gtk.Label("HScrollbar value: ")
      
      vb.add(self.lbl2)
      self.adj2.connect("value_changed", self.on_scrolled)
      self.add(vb)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
   
   def on_scrolled(self, widget, data=None):
      self.lbl2.set_text("HScrollbar value: "+str(int(self.adj2.value)))
if __name__ == '__main__':
   PyApp()
   gtk.main()

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