[Tkinter-discuss] Desperate GUI Help Please!!

Cam Farnell msa01 at bitflipper.ca
Tue Mar 16 15:26:12 CET 2010


Thomas,

A post which in essence says "please write my application for me" is pretty much a guaranteed way to annoy people - who are generally busy writing their own applications - or to simply be ignored.

A better approach would be to figure out what part of Tkinter isn't working as you expect, construct the *smallest* possible code that demonstrates the problem (hint: this will NOT be an entire section of your application) and submit that to this list.

Cheers

Cam

thomas1984 wrote:
> Hello,
> 
> I need to make a GUI which has a fixed window size approx 390 (width) X 6020
> (height)
> 
> It needs to have a fileMenu containing "File" "About" "Exit". In the "file"
> menu it needs a menuItem called "new route".
> 
> When you click on "new route" it needs to display a new window with a
> listBox.. When a user selects an item from the list box and clicks OK - it
> should pass this value to the original window.
> 
> The difficulty here is that the main body of the GUI window, needs to
> display an image BUT it needs to be an image that is able to be drawed on.
> 
> Below is my code for drawing on the image....... It is an EXAMPLE - but i
> need it like this i.e. by importing the ImageDraw library.
> 
> # Do the proper imports for this script
> from Tkinter import *
> import os, sys
> import Image
> import ImageDraw
> # Load the image
> try:
> im = Image.open("C:\Documents and Settings\Administrator\Desktop\mm.gif")
> except:
> print "Unable to load image"
> exit(1)
> # Get a drawing surface for the image
> draw = ImageDraw.Draw(im)
> # Draw the circle
> #draw.ellipse((0,0)+im.size)
> # Draw the line
> #draw.line((0,0)+im.size)
> # and show off the result
> draw.line((0, 0) + (0,55), fill=000, width=22)
> draw.text((50, 50), "hey")
> im.show()
> 
> Below is my code for the list box example......
> 
> from Tkinter import *
> class ListBoxTest :
> def __init__(self) :
> self.root = Tk()
> self.list_box_1 = Listbox(self.root)
> self.list_box_1.pack()
> self.delete_button = Button(self.root, text="Delete",
> command=self.DeleteSelection)
> self.delete_button.pack()
> def DeleteSelection(self) :
> items = self.list_box_1.curselection()
> pos = 0
> for i in items :
> idx = int(i) - pos
> self.list_box_1.delete( idx,idx )
> pos = pos + 1
> def Show(self) :
> for i in range(0, 10) :
> s = "Item " + str(i)
> self.list_box_1.insert( END,s )
> self.root.mainloop()
> lbt=ListBoxTest()
> lbt.Show()
> 
> 
> Below is my code for the Canvas and Window BUT the canvas does not hold an
> image I have drew on........
> 
> from Tkinter import *
> 
> class AppUI(Frame):
> 
> def __init__(self, master=None):
> Frame.__init__(self, master, relief=SUNKEN, bd=2)
> 
> self.menubar = Menu(self)
> 
> menu = Menu(self.menubar, tearoff=0)
> self.menubar.add_cascade(label="File", menu=menu)
> menu.add_command(label="New")
> 
> menu = Menu(self.menubar, tearoff=0)
> self.menubar.add_cascade(label="Edit", menu=menu)
> menu.add_command(label="Cut")
> menu.add_command(label="Copy")
> menu.add_command(label="Paste")
> 
> try:
> self.master.config(menu=self.menubar)
> except AttributeError:
> # master is a toplevel window (Python 1.4/Tkinter 1.63)
> self.master.tk.call(master, "config", "-menu", self.menubar)
> 
> canvas = Canvas(width = 300, height = 200, bg = 'white')
> canvas.pack(expand = YES, fill = BOTH)
> 
> gif1 = PhotoImage(file = 'mm.gif')
> canvas.create_image(50, 10, image = gif1, anchor = NW)
> canvas.pack()
> 
> root = Tk()
> 
> app = AppUI(root)
> app.pack()
> 
> root.mainloop()
> 
> 
> ---- Is there anyone here who can put these elements together and maybe make
> this GUI for me? I'm really stuck and as you can see by the code examples I
> have gave this a shot, but I don't know how to finish it off - If someone
> can do this for me - it would be great as I can look at the code and learn.


More information about the Tkinter-discuss mailing list