Go Back   CodingForums.com > :: Server side development > Other server side languages/ issues > Python

Before you post, read our: Rules & Posting Guidelines

Reply
 
Thread Tools Rate Thread
Enjoy an ad free experience by logging in. Not a member yet? Register.
Old 10-18-2008, 04:51 PM   PM User | #1
idalatob
Regular Coder

 
Join Date: Sep 2007
Location: Grahamstown, South Africa
Posts: 237
Thanks: 6
Thanked 17 Times in 17 Posts
idalatob is on a distinguished road
Tkinter image problem

Hey guys,

First of all im a relative newb when it comes to working with python, so go easy on me

I have a problem loading up images using the Label function, heres how my program works:

1.) Root window opens
2.) Image loads
3.) User selects their character.
4.) Root window is hidden & new window is opened(using Toplevel)
5.) Image of character is loaded.

The problem is the image loads fine the first time, but in the second window it refuses saying: TclError: image "empress.gif" doesn't exist.

I havent used Photoimage to load the image. I just used a direct filename.

Could someone help me out with this one?
idalatob is offline   Reply With Quote
Old 10-18-2008, 05:06 PM   PM User | #2
shyam
Senior Coder

 
shyam's Avatar
 
Join Date: Jul 2005
Posts: 1,563
Thanks: 2
Thanked 163 Times in 160 Posts
shyam will become famous soon enough
where is the code thats doing all this?
__________________
You never have to change anything you got up in the middle of the night to write. -- Saul Bellow
shyam is offline   Reply With Quote
Old 11-06-2008, 11:37 AM   PM User | #3
idalatob
Regular Coder

 
Join Date: Sep 2007
Location: Grahamstown, South Africa
Posts: 237
Thanks: 6
Thanked 17 Times in 17 Posts
idalatob is on a distinguished road
Code:
from Tkinter import *
from char_settings import *
class Application(Frame):
    global battlewindow
    def __init__(self, master):
        Frame.__init__(self, master, height=2, bd=2, bg="white")
        self.pack()
        self.grid_configure(columnspan=4)
        self.char_image = Label(self,image=nochar_iconImage)
        self.char_image.grid(row=5,column=0,columnspan=1)
        self.resetImage()
        self.writeup = Text(self, width=50, height=9, wrap=WORD)
        self.writeup.insert(0.0,"Please select a character to find out more.")
        self.writeup.grid(row=5,column=1,columnspan=3 ,sticky=W)
        self.cc()
        Label(self,image=logo_iconImage).grid(row=0,column=0,columnspan=4)
    def resetImage(self):
        self.char_image["image"] = nochar_iconImage
    def cc(self):
        output = "Welcome to The African Quest, please create your character."
        self.lbl = Label(self, text = str(output), bg="white", fg="blue",font="6")
        self.lbl.grid(row = 1, column=0, columnspan=4)
        self.name_lbl = Label(self, text = "Your Name:", bg="white")
        self.name_lbl.grid(row = 2, column=0, sticky=W)
        self.user_name = Entry(self,bg="white")
        self.user_name.grid(row=2, column=1, columnspan=2, sticky=W)
        self.gender_lbl = Label(self, text = "Gender:", bg="white")
        self.gender_lbl.grid(row = 3, column=0, columnspan=2, sticky=W)
        self.gender = StringVar()
        Radiobutton(self, text="Male",variable= self.gender, value="Male",command= self.load_chars, bg="white").grid(row = 3, column=1, sticky=W)
        Radiobutton(self, text="Female",variable= self.gender, value="Female",command= self.load_chars, bg="white").grid(row = 3, column=2, sticky=W)
    def load_chars(self):
        self.resetImage()
        self.char_type_lbl = Label(self, text = "Character Type:", bg="white")
        self.char_type_lbl.grid(row = 4, column=0, columnspan=2, sticky=W)
        self.char_type = StringVar()
        Radiobutton(self, text="Empress/Emperor",variable= self.char_type, value="1",command= self.char_details, bg="white").grid(row = 4, column=1, sticky=W)
        Radiobutton(self, text="Thug",variable= self.char_type, value="2",command= self.char_details, bg="white").grid(row = 4, column=2, sticky=W)
        Radiobutton(self, text="Thief",variable= self.char_type, value="3",command= self.char_details, bg="white").grid(row = 4, column=3, sticky=W)
    def char_details(self):
        if (self.char_type.get() == "1"):
            if (self.gender.get() == "Male"):
                self.new_char_image = self.gen_image(characters[0][3])
                self.char_image["image"] = self.new_char_image
                self.writeup.delete(0.0, END)
                self.writeup.insert(0.0,"These are the details about the emporer")
                extra = "Brute Force->" + characters[0][0] + "\n"
                extra += "Intuition->" + characters[0][1] + "\n"
                extra += "Athleticism->" + characters[0][2] + "\n"
                self.writeup.insert(0.0,str(extra))
                self.select_button()
            else:
                self.new_char_image = self.gen_image(characters[0][3])
                self.char_image["image"] = self.new_char_image
                self.writeup.delete(0.0, END)
                self.writeup.insert(0.0,"These are the details about the empress")
                extra = "Brute Force->" + characters[0][0] + "\n"
                extra += "Intuition->" + characters[0][1] + "\n"
                extra += "Athleticism->" + characters[0][2] + "\n"
                self.writeup.insert(0.0,str(extra))
                self.select_button()
        elif (self.char_type.get() == "2"):
            self.new_char_image = self.gen_image(characters[1][3])
            self.char_image["image"] = self.new_char_image
            self.writeup.delete(0.0, END)
            self.writeup.insert(0.0,"These are the details about the thug")
            extra = "Brute Force->" + characters[1][0] + "\n"
            extra += "Intuition->" + characters[1][1] + "\n"
            extra += "Athleticism->" + characters[1][2] + "\n"
            self.writeup.insert(0.0,str(extra))
            self.select_button()
        else:
            self.new_char_image = self.gen_image(characters[2][3])
            self.char_image["image"] = self.new_char_image
            self.writeup.delete(0.0, END)
            self.writeup.insert(0.0,"These are the details about the thief.")
            extra = "Brute Force->" + characters[2][0] + "\n"
            extra += "Intuition->" + characters[2][1] + "\n"
            extra += "Athleticism->" + characters[2][2] + "\n"
            self.writeup.insert(0.0,str(extra))
            self.select_button()
    def gen_image(self,img_name):
        self.image = PhotoImage(master=root, file=img_name)
        return self.image
    def select_button(self):
        self.select_char_button = Button(text="Choose this Character", fg="brown",bg="white", command=self.select_char)
        if (self.char_type.get() == "1") or (self.char_type.get() == "2") or (self.char_type.get() == "3") and (self.gender.get() == "Male") or (self.gender.get() == "Female"):
            self.select_char_button.grid(row="6",column="0",columnspan="4")
        else:
            self.select_char_button.destroy()
    def select_char(self):
        self.chosen_char = [self.user_name.get(),self.gender.get(),self.char_type.get()]
        root.withdraw()
        battlewindow = Toplevel()
        battlewindow.title("On the road")
        bw = battlemain(battlewindow,self.chosen_char)
        battlewindow.mainloop()
class battlemain(Frame):
    global chosen_char
    def __init__(self,master,chosen_char):
        self.chosen_char = chosen_char
        Frame.__init__(self, master,width="650", height="500", bd=2, bg="white")
        self.pack()
        self.psn()
    #load the picture, stats & name
    def psn(self):
        char_key = int(self.chosen_char[2]) - 1
        self.char_picture = characters[char_key][3]
        imagey = PhotoImage(master=root,file = self.char_picture)
        self.main_user_image = Label(self,image=self.char_picture)
        self.main_user_image.grid(row=0,column=0,columnspan=1, sticky=W)
# set the characters stats.
# in the form: bruteforce, intuition, athleticism
root = Tk()
logo_iconImage = PhotoImage(master=root, file="logo.gif")
nochar_iconImage = PhotoImage(master=root, file="no_char.gif")
char_det = Char_details()
characters = char_det.return_char_details()
root.title("The African Quest")
app = Application(root)
root.mainloop()
idalatob is offline   Reply With Quote
Reply

Bookmarks

Jump To Top of Thread


Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 01:51 PM.


Advertisement
Log in to turn off these ads.