[Tutor] Tkinter Q's
Joseph Quigley
cpu.crazy at gmail.com
Wed Jul 13 10:13:42 CEST 2005
Hi,
what's the **kw stand for, used for? What does it mean?
> Some comments ---
>
> You create a Frame, but you never use it.
>
> You've put a whole lot of code in a class, but it's not in a class method. This
> is kinda missing the point of using classes in the first place (and it just
> flat-out wouldn't work in the majority of OO languages).
>
> Here's what I would do:
>
> class Main(Frame):
> def __init__(self, master=None, **kw):
> Frame.__init__(self, master, **kw)
>
> showquote = Label(self, text=random.choice(quotes.quote))
> showquote.pack()
>
> # etc
>
> if __name__ == '__main__':
> root = Tk()
> main = Main(root)
> main.pack(fill=BOTH, expand=True)
> root.mainloop()
> ###
>
> Do you see what I am doing there, and why it is different from your approach?
Uh, not really, no. I'm very new to GUI. So you're saying that If I make the class actually do something (I edited and example in:
An into to Tkinter, Fredrik Lundh).
>
>
> Once you've got a label, you can change its text attribute by using its
>.config() method.
>
> So, you could do something like this:
>
> # ...
> showquote = Label(self, text=random.choice(quotes.quote))
> showquote.pack()
>
> def changeQuote():
> currQuote = showquote.cget('config') # Get the current quote
> newQuote = random.choice(quotes.quote)
> while newQuote == currQuote: # Make sure the new quote differs
> newQuote = random.choice(quotes.quote)
> showquote.config(text=newQuote)
> Button(self, text='Show another quote', command=changeQuote).pack()
Aaag. I'm confused... I just tried you changeQuote example with out the above stuff... didn't work. My error message:
AttributeError: 'NoneType' object has no attribute 'config'
so I edited it a little, still didn't work (same error). I tried the class Main(Frame) and didn't get it to work either. Do you think you could make it a little bit simpler? If you can't that's ok, I'll try to study it more.
Thanks,
Joe
More information about the Tutor
mailing list