PyGTK - प्रोग्रेसबार क्लास

प्रगति पट्टियों का उपयोग उपयोगकर्ता को एक लंबी चलने वाली प्रक्रिया के दृश्य संकेत देने के लिए किया जाता है। Gtk.ProgressBar विजेट को दो मोडों - प्रतिशत मोड और गतिविधि मोड में उपयोग किया जा सकता है।

जब यह सटीक रूप से अनुमान लगाना संभव है कि कितना काम पूरा होने के लिए लंबित है, तो प्रगति बार का उपयोग प्रतिशत मोड में किया जा सकता है, और उपयोगकर्ता एक वृद्धिशील बार देखता है जो पूर्ण कार्य का प्रतिशत दिखाता है। यदि दूसरी ओर, पूरा होने वाले काम की मात्रा को सटीक रूप से निर्धारित किया जा सकता है, तो प्रगति बार का उपयोग गतिविधि मोड में किया जाता है, जिसमें बार एक ब्लॉक को आगे और पीछे प्रदर्शित करके गतिविधि को दिखाता है।

निम्नलिखित कंस्ट्रक्टर gtk.ProgressBar वर्ग के विजेट को आरंभीकृत करता है -

pb = gtk.ProgressBar()

gtk.ProgressBar कार्यक्षमता को प्रबंधित करने के लिए निम्न विधियों का उपयोग करता है -

  • ProgressBar.pulse()- यह प्रगति करने वाले को इंगित करता है कि कुछ प्रगति हुई है, लेकिन आप नहीं जानते कि कितना हुआ। यह विधि प्रगति बार मोड को "गतिविधि मोड" में भी बदलती है, जहां एक ब्लॉक आगे और पीछे उछलता है।

  • ProgressBar.set_fraction(fraction) - यह प्रगति बार के निर्दिष्ट भाग को "भरने" का कारण बनता है fraction। का मूल्यfraction 0.0 और 1.0 के बीच होना चाहिए।

  • ProgressBar.set_pulse_setup() - यह भाग (द्वारा निर्दिष्ट) सेट करता है fractionप्रत्येक कॉल के लिए शेख़ी ब्लॉक को स्थानांतरित करने के लिए कुल प्रगति बार लंबाई की) pulse() तरीका।

  • ProgressBar.set_orientation()- यह प्रगति बार के उन्मुखीकरण को निर्धारित करता है। इसे निम्नलिखित स्थिरांक में से एक में सेट किया जा सकता है:

    • gtk.PROGRESS_LEFT_TO_RIGHT

    • gtk.PROGRESS_RIGHT_TO_LEFT

    • gtk.PROGRESS_BOTTOM_TO_TOP

    • gtk.PROGRESS_TOP_TO_BOTTOM

निम्नलिखित कार्यक्रम में, gtk.ProgressBar विजेट गतिविधि मोड में उपयोग किया जाता है। इसलिए, प्रगति की प्रारंभिक स्थिति 0.0 से निर्धारित हैset_fraction() तरीका।

self.pb = gtk.ProgressBar()
self.pb.set_text("Progress")
self.pb.set_fraction(0.0)

100 मिलीसेकंड के बाद प्रगति को 1 प्रतिशत बढ़ाने के लिए, एक टाइमर ऑब्जेक्ट घोषित किया जाता है और प्रत्येक 100 एमएस के बाद कॉलबैक फ़ंक्शन को सेट किया जाता है ताकि प्रगति बार अपडेट हो।

self.timer = gobject.timeout_add (100, progress_timeout, self)

यहाँ, progress_timeout()कॉलबैक फ़ंक्शन है। यह के पैरामीटर को बढ़ाता हैset_fraction() 1 प्रतिशत की विधि और पूर्णता का प्रतिशत दिखाने के लिए प्रगति बार में टेक्स्ट को अपडेट करता है।

def progress_timeout(pbobj):
   new_val = pbobj.pb.get_fraction() + 0.01
   pbobj.pb.set_fraction(new_val)
   pbobj.pb.set_text(str(new_val*100)+" % completed")
   return True

उदाहरण

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

import gtk, gobject
   
def progress_timeout(pbobj):
   new_val = pbobj.pb.get_fraction() + 0.01
   pbobj.pb.set_fraction(new_val)
   pbobj.pb.set_text(str(new_val*100)+" % completed")
   return True

class PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Progressbar demo")
      self.set_size_request(300,200)
      self.set_position(gtk.WIN_POS_CENTER)
		
      fix = gtk.Fixed()
      self.pb = gtk.ProgressBar()
      self.pb.set_text("Progress")
      self.pb.set_fraction(0.0)
		
      fix.put(self.pb,80,100)
      self.add(fix)
      self.timer = gobject.timeout_add (100, progress_timeout, self)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
PyApp()
gtk.main()

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

गतिविधि मोड में प्रगति बार का उपयोग करने के लिए, कॉलबैक फ़ंक्शन को निम्न और रन में बदलें -

def progress_timeout(pbobj):
   pbobj.pb.pulse()
   return True

प्रगति पट्टी के अंदर एक ब्लॉक के आगे और पीछे की गतिविधि गतिविधि की प्रगति को दिखाएगी।