Progress Bar

A simple example of using the Windows Forms Progress Bar.

The progress bar is in a form shown modally (shown with ShowDialog). Another thread is launched, which periodically updates the progress bar - which it has to do by invoking back onto the control thread.



import clr clr.AddReference('System.Windows.Forms')

from System.Windows.Forms import Application, Form, ProgressBar from System.Threading import ThreadStart, Thread from IronPython.Runtime.Calls import CallTarget0

class ProgressBarDialog(Form): def __init__(self): self.Text = 'Progress Bar Example' pb = ProgressBar pb.Minimum = 1 pb.Maximum = 100 pb.Step = 1 pb.Value = 1 pb.Width = 400 self.Controls.Add(pb) self.prog = pb       self.Shown += self.startProgress def startProgress(self, s, e): def update: for i in range(100): print i               def step: self.prog.Value = i + 1 self.Invoke(CallTarget0(step)) Thread.Sleep(30) print 'Done' t = Thread(ThreadStart(update)) t.Start

Application.EnableVisualStyles f = ProgressBarDialog f.ShowDialog

Back to Contents.