class doesn't open its window - newbie question

Discussion in 'Python' started by Chris Hare, Aug 1, 2010.

  1. Chris Hare

    Chris Hare Guest

    I am a newbie to python, but not programming.

    I have a menubar item

    displaySubMenu.add_command(label="External", command=externalDisplay)

    externalDisplay is a new class, which I have already imported. The class is here:

    from Tkinter import *
    from datetime import datetime, date, time
    import urllib
    from PIL import Image
    #import Image # PIL required
    import ImageTk

    backColor = "Gray"
    highcolor = "Green"
    entryColor = "Cyan"
    okColor = "Green"
    warnColor = "Red"

    class externalDisplay(Frame):

    def __init__(self,callSign,nexrad):
    """Initialize yourself"""
    self.callSign = callSign
    self.nexrad = nexrad
    #"""Initialise the base class"""
    Frame.__init__(self)

    "Set the Window Title"""
    #self.title( "Test")


    self.findu = "http://www.findu.com/cgi-bin/radar-find.cgi?call=" + self.callSign + "&radar=" + self.nexrad

    """Display the main window" with a little bit of padding"""
    self.grid(padx=5,pady=5)
    self.CreateWidgets()

    def CreateWidgets(self):
    #"""Create all the widgets that we need"""
    self.f = Frame(self, bd=0, bg=backColor)
    self.title = "netcomm Online Radar"
    self.f.grid()
    #
    # Insert the date and time the radar image was updated
    #
    self.lblLastUpdate = Label(self.f, text="Last Updated: " + str(datetime.now()), bg=backColor)
    self.lblLastUpdate.grid( row=0, column=0, sticky=W)
    self.btnRefresh = Button(self.f, text="Refresh", command=handlesExternalDisplayByClick, bg=backColor,highlightbackground=okColor,highlightcolor=highcolor)
    self.btnRefresh.grid(row=0, column=1)
    self.btnRefresh = Button(self.f, text="Close", command=self.destroy, bg=backColor,highlightbackground=warnColor,highlightcolor=highcolor)
    self.btnRefresh.grid(row=0, column=2)
    #
    # Start the download from findu
    #
    #
    # This gets the image and saves it to the local disk as "image.png"
    #
    # NOTE - will ideally want to conver this to GIF and save it using
    # the date as part of the filename so the net can be re-created
    # for reporting and to create a flipbook of the radar images
    #
    urllib.urlretrieve(self.findu, "image.png")
    Image.open("image.png").save("image.gif")
    self.photo = PhotoImage(file="image.gif")
    #
    # create a canvas of the appropriate size for the image
    #
    self.w = Canvas(self.f, width=600, height=550)
    #
    # convert it into a photo item we can use in the display
    #
    self.netRadarImage = Label(self.w, image=self.photo)
    self.netRadarImage.image = self.photo
    self.w.grid(row=1, column=0, columnspan=3)
    self.netRadarImage.grid( row=1, column=0)

    def handlesExternalDisplayByClick(self):
    #
    # destroy the existing frame the radar is in
    #
    self.destroy()
    #
    # rebuild the radarWidgets
    #
    createRadarWidgets(frameRadar)

    def handlesRadarRefreshByClick(self):
    #
    # destroy the existing frame the radar is in
    #
    self.destroy()
    #
    # rebuild the radarWidgets
    #
    self.update()

    if __name__ == "__main__":
    guiFrame = externalDisplay("AE5PL-10","fws")
    guiFrame.mainloop()

    The problem is that the window defined in the class never appears, and I don't know why. I would like to get all of the code for the window into a single file which I import, but since I can't make this work right, I don't want to invest the time yet. Eve worse, is that when I run the code as a standalone module and click on the close button, I am left with a tk window instead of the app actually closing.

    Any suggestions are appreciated.
    Chris Hare, Aug 1, 2010
    #1
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. thunk
    Replies:
    1
    Views:
    307
    thunk
    Mar 30, 2010
  2. thunk
    Replies:
    0
    Views:
    472
    thunk
    Apr 1, 2010
  3. thunk
    Replies:
    14
    Views:
    614
    thunk
    Apr 3, 2010
  4. Phil
    Replies:
    3
    Views:
    168
    Thomas 'PointedEars' Lahn
    May 3, 2004
  5. PC HUA
    Replies:
    2
    Views:
    406
    PC HUA
    May 19, 2004
Loading...

Share This Page