Tkinter - problem closing window

Roger rdcollum at gmail.com
Mon Jan 5 12:21:38 EST 2009


On Jan 5, 11:52 am, Collin D <collin.da... at gmail.com> wrote:
> On Jan 5, 6:25 am, "Djames Suhanko" <djames.suha... at gmail.com> wrote:
>
>
>
> > Hello!
> > I'm sorry my terrible english (my native language is portuguese).
> > I has a litle program that open another window. When I close de root
> > window in quit button, I need clicking 2 times to close. is where the
> > problem?
>
> > The source:
> >   1 #!/usr/bin/env python
> >   2 from Tkinter import *
> >   3 import sys
> >   4 import random
> >   5 class App:
> >   6  def __init__(self, master):
> >   7    frame = Frame(master)
> >   8    frame.pack()
> >   9    rotulo = Label(frame, text="Clique em 'Gerar' e boa
> > sorte!",borderwidth=2,bg="gray",justify=C    ENTER,relief=SUNKEN)
> >  10    rotulo.pack()
> >  11
> >  12    self.button = Button(frame, text="Sair", fg="red",
> > command=frame.quit,borderwidth=1)
> >  13    self.button.pack(side=LEFT)
> >  14    self.hi_there = Button(frame, text="Gerar Numero",
> > command=self.say_hi,borderwidth=1)
> >  15    self.hi_there.pack(side=RIGHT,padx=2,pady=2)
> >  16
> >  17  def gera_seis(self):
> >  18    a = {}
> >  19    for i in range(6):
> >  20       a[i] = "%02d" %  int (random.randint(0,60))
> >  21    resultadoA = "%s-%s-%s-%s-%s-%s" %
> > (str(a[0]),str(a[1]),str(a[2]),str(a[3]),str(a[4]),str(a[5]))
> >  22    return resultadoA
> >  23
> >  24  def say_hi(self):
> >  25    resultado = self.gera_seis()
> >  26    raiz = Tk()
> >  27    F = Frame(raiz)
> >  28    F.pack()
> >  29    hello = Label(F, text=resultado)
> >  30    hello.pack()
> >  31    F.mainloop()
> >  32
> >  33 root = Tk()
> >  34 root.title("$$$ Loteria $$$")
> >  35 app = App(root)
> >  36 root.mainloop()
>
> > --
> > Djames Suhanko
> > LinuxUser 158.760
>
> Also for style, you might want to group the import lines so they look
> like this:
>
> from Tkinter import *
> import sys, random
>
> A bit more pythonic. :P

In that case you probably want to take out the 'from' import and:

import Tkinter, sys, random

in order to avoid any namespace issues especially if you have a large
project with lots of gui manipulations.  But that's just me being
pedantic. ;)



More information about the Python-list mailing list