2009-12-10 21 views
5

मैं wx.ProgressDialog का उपयोग नहीं कर सकता क्योंकि मुझे संवाद बॉक्स में अतिरिक्त सामग्री जोड़ने की आवश्यकता है (एक विराम बटन और वर्तमान में संसाधित होने के बारे में जानकारी)। क्या केवल प्रगति पट्टी के लिए कोई नियंत्रण है जिसका उपयोग मैं अपने संवाद बॉक्स में कर सकता हूं?wxPython प्रगति पट्टी

मैं निश्चित रूप से कुछ सरल बना सकता हूं, लेकिन चूंकि कार्यक्रम को मैक ओएस एक्स, विंडोज और लिनक्स पर चलाने की आवश्यकता है, इसलिए प्रगति सलाखों के मूल स्वरूप होने पर यह बेहतर होगा।

उत्तर

2

तुम हमेशा wx.Dialog की अपनी व्युत्पन्न बना सकते हैं और एक आकार मापक का उपयोग कर, विजेट आप की आवश्यकता में जोड़ें।

यहाँ मेरी कार्यक्रम से एक उदाहरण के लिए दिया गया है:

class ProgressDialog(wx.Dialog): 
    """ 
    Shows a Progres Gauge while an operation is taking place. May be cancellable 
    which is possible when converting pdf/ps 
    """ 
    def __init__(self, gui, title, to_add=1, cancellable=False): 
     """Defines a gauge and a timer which updates the gauge.""" 
     wx.Dialog.__init__(self, gui, title=title, 
          style=wx.CAPTION) 
     self.gui = gui 
     self.count = 0 
     self.to_add = to_add 
     self.timer = wx.Timer(self) 
     self.gauge = wx.Gauge(self, range=100, size=(180, 30)) 
     sizer = wx.BoxSizer(wx.VERTICAL) 
     sizer.Add(self.gauge, 0, wx.ALL, 10) 

     if cancellable: 
      cancel = wx.Button(self, wx.ID_CANCEL, _("&Cancel")) 
      cancel.SetDefault() 
      cancel.Bind(wx.EVT_BUTTON, self.on_cancel) 
      btnSizer = wx.StdDialogButtonSizer() 
      btnSizer.AddButton(cancel) 
      btnSizer.Realize() 
      sizer.Add(btnSizer, 0, wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, 10) 

     self.SetSizer(sizer) 
     sizer.Fit(self) 
     self.SetFocus() 

     self.Bind(wx.EVT_TIMER, self.on_timer, self.timer) 
     self.timer.Start(30) 


    def on_timer(self, event): 
     """Increases the gauge's progress.""" 
     self.count += self.to_add 
     self.gauge.SetValue(self.count) 
     if self.count > 100: 
      self.count = 0 


    def on_cancel(self, event): 
     """Cancels the conversion process""" 
     # do whatever 
संबंधित मुद्दे