Need a Progress Bar/Meter for Tkinter

  • Thread starter benjamin schollnick
  • Start date
B

benjamin schollnick

Folks,

I am really not having much luck...

I thought the ContriD addon for Python MegaWidgets had a progress
bar, but can't find the site any more... (It's been a long time since
I did any Tkinter GUI work...)

So far, I have had no luck with METER from TIX... Tix on Windows
2000 seems to be far from a suitable system. It is complaining that
the TIX8183.dll can not be loaded....

So far, I have also examined EASYGUI, and a few others and have not
been able to find a simple Progress bar.

Can anyone point me towards a working Tkinter based progress bar?

- Benjamin
 
M

Martin Franklin

benjamin said:
Folks,

I am really not having much luck...

I thought the ContriD addon for Python MegaWidgets had a progress
bar, but can't find the site any more... (It's been a long time since
I did any Tkinter GUI work...)

So far, I have had no luck with METER from TIX... Tix on Windows
2000 seems to be far from a suitable system. It is complaining that
the TIX8183.dll can not be loaded....

So far, I have also examined EASYGUI, and a few others and have not
been able to find a simple Progress bar.

Can anyone point me towards a working Tkinter based progress bar?

- Benjamin

Google is your friend...

google python Tkinter Progress Bar

http://www.faqts.com/knowledge_base/view.phtml/aid/2718

HTH
Martin
 
B

benjamin schollnick

Google is your friend...

google python Tkinter Progress Bar

http://www.faqts.com/knowledge_base/view.phtml/aid/2718

Sorry... I forgot to mention by specifics, that I had tried that one,
and it does not seem to work on my Python v2.33 install...

The root TK window starts up, but disappears, and almost immediately
quits... No progress bar, but the program itself works...

I just found one today that works....

But I don't have it here to post....

Either way... I am very suprised that this is not a standard widget
in the Tkinter module...

- Ben
 
K

klappnase

benjamin schollnick said:
Folks,

I am really not having much luck...

I thought the ContriD addon for Python MegaWidgets had a progress
bar, but can't find the site any more... (It's been a long time since
I did any Tkinter GUI work...)

So far, I have had no luck with METER from TIX... Tix on Windows
2000 seems to be far from a suitable system. It is complaining that
the TIX8183.dll can not be loaded....

So far, I have also examined EASYGUI, and a few others and have not
been able to find a simple Progress bar.

Can anyone point me towards a working Tkinter based progress bar?

- Benjamin

Hi Benjamin,

I wrote a simple progress bar widget for Tkinter a while ago I use as
a replacement for the Tix.Meter . It looks and behaves mostly like a
Tix.Meter widget. Here's the code:

##############################file Meter.py####################
import Tkinter

class Meter(Tkinter.Frame):
'''A simple progress bar widget.'''
def __init__(self, master, fillcolor='orchid1', text='',
value=0.0, **kw):
Tkinter.Frame.__init__(self, master, bg='white', width=350,
height=20)
self.configure(**kw)

self._c = Tkinter.Canvas(self, bg=self['bg'],
width=self['width'], height=self['height'],\
highlightthickness=0, relief='flat',
bd=0)
self._c.pack(fill='x', expand=1)
self._r = self._c.create_rectangle(0, 0, 0,
int(self['height']), fill=fillcolor, width=0)
self._t = self._c.create_text(int(self['width'])/2,
int(self['height'])/2, text='')

self.set(value, text)

def set(self, value=0.0, text=None):
#make the value failsafe:
if value < 0.0:
value = 0.0
elif value > 1.0:
value = 1.0
if text == None:
#if no text is specified get the default percentage
string:
text = str(int(round(100 * value))) + ' %'
self._c.coords(self._r, 0, 0, int(self['width']) * value,
int(self['height']))
self._c.itemconfigure(self._t, text=text)

######################################################################

You can use the set() method to change the "value"; if you don't want
any text inside the progress bar use the text="" option (default is a
string like "75 %").

I hope this helps

Michael
 
B

benjamin schollnick

I wrote a simple progress bar widget for Tkinter a while ago I use as
a replacement for the Tix.Meter . It looks and behaves mostly like a
Tix.Meter widget. Here's the code:

##############################file Meter.py####################
import Tkinter

class Meter(Tkinter.Frame):
'''A simple progress bar widget.'''
def __init__(self, master, fillcolor='orchid1', text='',
value=0.0, **kw):
Tkinter.Frame.__init__(self, master, bg='white', width=350,
height=20)
self.configure(**kw)

self._c = Tkinter.Canvas(self, bg=self['bg'],
width=self['width'], height=self['height'],\
highlightthickness=0, relief='flat',
bd=0)
self._c.pack(fill='x', expand=1)
self._r = self._c.create_rectangle(0, 0, 0,
int(self['height']), fill=fillcolor, width=0)
self._t = self._c.create_text(int(self['width'])/2,
int(self['height'])/2, text='')

self.set(value, text)

def set(self, value=0.0, text=None):
#make the value failsafe:
if value < 0.0:
value = 0.0
elif value > 1.0:
value = 1.0
if text == None:
#if no text is specified get the default percentage
string:
text = str(int(round(100 * value))) + ' %'
self._c.coords(self._r, 0, 0, int(self['width']) * value,
int(self['height']))
self._c.itemconfigure(self._t, text=text)

######################################################################
You can use the set() method to change the "value"; if you don't want
any text inside the progress bar use the text="" option (default is a
string like "75 %").

Thanks Michael, Much appreciated!

- Benjamin
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,535
Members
45,007
Latest member
obedient dusk

Latest Threads

Top