TclError: image "pyimage1" doesn't exist

Fragen zu Tkinter.
nevergod
User
Beiträge: 46
Registriert: Mittwoch 22. September 2010, 13:22

Bekomme immer diesen komischen fehler wenn ich das label mit dem image anzeigen will, was mache ich falsch?

Code: Alles auswählen

   lolliimg = PhotoImage(file="bin/img/lolliava.gif")
                lolliimglab=Label(lager,image=lolliimg)
                lollinamelab=Label(lager,text="Lollipop´s : ")
                x=open("bin/account/9.txt",'r')
                lollisread=x.readline()
                lollis=int(lollisread)
                x.close()
                lolliamountlab=Label(lager,text="%s gramm" % lollis)
                
                descript.grid(columnspan=3)
                space.grid(row=2)
                lolliimglab.grid(row=3,column=1)
                lollinamelab.grid(row=3,column=2)
                lolliamountlab.grid(row=3,column=3)
Es scheint zu gehen wenn ich ein anderes widget nehme, aber dann wirds auch nicht richtig angezeigt :S Will halt einfach nur dieses Label mit einem bild drinne haben (gif)

mfG. NeverGod
BlackJack

@nevergod: Du musst auf der "Python-Seite" eine Referenz auf das Bildobjekt behalten, sonst wird der Speicher davon wieder freigegeben und die "Tk-Seite" hat nichts mehr zum anzeigen.
nevergod
User
Beiträge: 46
Registriert: Mittwoch 22. September 2010, 13:22

wie stell ich das an :K ?

mfG,
NeverGod
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo nevergod

Hier noch etwas zum experimentieren:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import Tkinter as tk

LABEL_IMAGE =\
'''
R0lGODlhNQA1AMYoAAAAAAAEAAgECAgICAgMCBAMEBAQEBAUEBgUGBgYGBgc
GCAcICAgICAkICkkKSkoKSksKTEsMTEwMTE0MTk0OTk4OTk8OUE8QUFAQUFE
QUpESkpISkpMSkpQSlJMUlJQUlJVUlpVWlpZWvAgAFpdWmJdYmJhYmJlYvAw
AGplamppamptanNtc3Nxc3N1c3t1e3t5e3t9e4N9g4OBg4OFg4uFi4uJi4uN
i5SNlJyRe5SRlJSVlJyVnJyZnJydnPCQAKSdpKShpKSlpKylrKyqrKyurLSu
tLSytLS2tL22vfDAAMW6nM26i726ve7CIL2+vcW+xcXCxebGWsXGxf/OAPbK
Me7KSv/OCP/KKf/SAM3Gzf/SGM3Kzf/OMd7OlP/WGM3OzdXO1f/WOf/WStXS
1fbaYtXW1d7W3v/eat7a3t7e3v/ie+be5ubi5v/qi+7m7u7q7vbuze7u7v/y
vfby9v/y3vb29v/2///6//////AwAPAwAPAwAPAwAPAwAPAwACH+FUNyZWF0
ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgB/ACwAAAAANQA1AAAH/oB/goOEhYaH
iIYjhIuLiY+QkYySlJWGKH8omJiOlp6PmIKhn6SHmpqZmaOlpaGbf3OssqKq
mG5UYoNKs5avqX9fVF5/SsW8va4oZVlMxMeSHkg2LWhUVFtjY1RXus+PHEl3
dGtUTlJYVV1WS86sNzIyQU1NR0c3IBUnQoInTTZ0dsRQyTHjSaFdpEi0aJMn
jx06cN6oSUMmigkACULokHGhCZ06ce6oEPSj3ScSM+TkwXNHDpw2bMyQ4aLl
SRMWA0h8mAAAwL+HTVzI8tGBYR5xEdlQDKMlSpMkRohYeHBAQE8AEmw0ITGy
FAkcK1u+ZHNmphYo9IwMCdKjxNW3/j0bsCIBxCFEiUunOE1ShEgQIDt02GgA
t+cAViuIiIUpk6bNI0aEsOVxw8YMGRYKAxBKykePuxPJhNH7tO/fwDZqyIDR
okJhA6xAvFTTuGZayT0oW5bxwsUKFRI0c0h4JjQY0nz9AhZcIwZrFidMiEig
GQApFrUfR55c+bKLFipSkBDxYUN1ABA8kYgyeq/p5amdt2CRQnoIDxseWK3u
ycKUx0XgtkN3MnwXXgnkeaABBhUMcB4AGFRyAwtNIGGaD6jRIB909nGwAQYX
TLAAAAEAYFWJbx1GyQwzBMjdbgaKl2AGDFIAAWEP9mTDijIA0YMOOMT3XHQi
hOAhiBNI/vCAAwGUeKKJJL5VCQAkDGhZDDGO94EHNFZg4wMMKIBijgBYQAkA
FNSgIWsrEGnkhyEq6YACCDQJpZNRWrXfA2cO0Bt4Mm7Z5ZcMLHBAAWSaGIBV
fEoSF4dFHhnnkgokUICDeGYK5QADGOBgo5FcxcAHH3DQ5QQQgKnAAQaMeV6T
AxBgwAEIAAAqJClGYIEFST7QAJ0EOPjksHkOUIABCCSwAHW3PqJZrJzamSgA
nBpgQAIJMNDAiGZKQkB1mhKLpwACFFAAAggssIADD0RAXSXmTVudAMYiqywD
7EogQa2WzJvnv04GEOusCSig7QMQUECBBZz2K+9VTRZAAK0L/ijQgAMRQDBB
BRc8AEAFloAAl7h3Utvptdky8MAD+lZgAQYZ1EqDJ/IKLOsBBR8MgQQbW5BB
Bq7J5ckHhRFL77HJLoBvuxJQwDEGG0Tt4AykfHtetSgzoDLLElRQAQZQb/AB
dRmwApeTAhBAALoKrItxBApfcIEGGnjgQQgMAKCALCSMXG/SS0fQ9NMabODB
B3hTe8MsHFyVNsEGN4Awzy7DvAEHH4CQ+ABU8yLCVQUcoIDFDUAA9wQWzJ0B
B3eDoIGDsHnzh4MAFLB1y1+HTaoIHjgQl+yDZNCTAAlE0LPlmHtQgQKGAW8I
BlcZoIADki9Za0+xO39ICxMcoJnQCdqHL/745HsSCAA7
'''

LOLLILAB_TEXT = "Lollipop's : "
LOLLIS_VALUE = 1000
UNITS = "gramm"

app_win = tk.Tk()

lollipop_img = tk.PhotoImage(data=LABEL_IMAGE)

lollipop_text = LOLLILAB_TEXT + "%s " % LOLLIS_VALUE + UNITS

lollipop_label = tk.Label(app_win, image=lollipop_img, text=lollipop_text,
    compound='left')
lollipop_label.pack()

app_win.mainloop()
Gruß wuf :wink:
Take it easy Mates!
nevergod
User
Beiträge: 46
Registriert: Mittwoch 22. September 2010, 13:22

ah her je, sieht aus als wie wenn man ne jpg mit nem editor öffnet :S

Werde mich morgen mal genauer mit diesem code befassen.

vielen dank wuf :)
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Der Code da oben ist nur drin, damit du das Programm gleich testen kannst, das ist einfach nur ein eingebettetes Bild.

tk.PhotoImage(file="img") geht genauso, du solltes eher auf den Rest des Programmes von wuf sehen.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo nevergod

Der Hinweis von Xynon1 ist richtig. Für deine Anwendung müsste es in etwa wie folgt aussehen:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import Tkinter as tk

LOLLILAB_TEXT = "Lollipop's : "
UNITS = "gramm"

app_win = tk.Tk()

x = open("bin/account/9.txt",'r')
lollisread = x.readline()
lollis_value = int(lollisread)
x.close()

lollipop_img = tk.PhotoImage(file="bin/img/lolliava.gif")

lollipop_text = LOLLILAB_TEXT + "%s " % lollis_value + UNITS

lollipop_label = tk.Label(app_win, image=lollipop_img, text=lollipop_text,
    compound='left')
lollipop_label.pack()

app_win.mainloop()
Kannst du es bitte austesten.

Gruß wuf :wink:
Take it easy Mates!
nevergod
User
Beiträge: 46
Registriert: Mittwoch 22. September 2010, 13:22

habs jetzt soweit hinbekommen. Denn es kommt jetzt ein anderer fehler ^^couldnt recognize image data!
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

hast du ein .gif Bild genommen ?

Denn für andere Formate brauchst du die Module Image und ImageTk aus der PIL.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
nevergod
User
Beiträge: 46
Registriert: Mittwoch 22. September 2010, 13:22

ja habe ich, habe das bild genommen angepasst und dann mit photoshop unter gif abgespeichert. :?
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Also du kannst wie schon erwähnt auch die PIL nutzen zB. so:

Code: Alles auswählen

import Image
import ImageTk

# Wandelt ein PIL-Image in ein tkinter.PhotoImage um
# pil_image - ist natuerlich das PIL-Image
def pil_to_tk(pil_image):

    # Erstellt ein leeres tkinter.PhotoImage
    tk_image = ImageTk.PhotoImage("RGBA", pil_image.size)

    # Dateninhalt des pil_images in den des tkinter.PhotoImages ablegen
    tk_image.paste(pil_image)

    # tkinter.PhotoImage zurueck geben
    return tk_image

img = Image.open("pic.png")
photo = pil_to_tk(img)
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
nevergod
User
Beiträge: 46
Registriert: Mittwoch 22. September 2010, 13:22

no module named Image :S habe noch version 2.7, kann es daran liegen?

edit// hatte PIL net drauf, geht jetzt, aber mit deiner methode kommt "Image class has no attribute open" :S
Zuletzt geändert von nevergod am Donnerstag 14. Oktober 2010, 10:33, insgesamt 1-mal geändert.
BlackJack

@nevergod: `Image` bzw. `PIL.Image` sind nicht in der Standardbibliothek. Die Python Imaging Libarary (PIL) muss extra installiert werden.
nevergod
User
Beiträge: 46
Registriert: Mittwoch 22. September 2010, 13:22

hatte PIL net drauf, geht jetzt, aber mit deiner methode kommt "Image class has no attribute open" :S
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

hast du das tkinter-modul so eingeladen ?

from Tkinter import *

- dann kolledieren die Klassen tkinkter.Image und PIL.Image
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
nevergod
User
Beiträge: 46
Registriert: Mittwoch 22. September 2010, 13:22

ja hab from tkinter import * eingegeben. Ist das schlimm? Wie kann ich das anders eingeben? :S

gruß,
nevergod
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

eigentlich sollte man module immer mit "import modul" öffnen also in deinem Fall zB.

Code: Alles auswählen

import Tkinter as tk
so würdest du alle Klassenobjekte die du aus dem tkinter-Modul benötigst über tk aufrufen, also statt Button(...) - tk.Button(...).
So kann kein Konflikt auftreten, wenn Klassenobjekte mit gleiche mNamen in den Modulen, die du importierst hast, existieren.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

nevergod hat geschrieben:habs jetzt soweit hinbekommen. Denn es kommt jetzt ein anderer fehler ^^couldnt recognize image data!
Kannst du es einmal mit einem anderen .gif-Bildchen probieren, welches du nicht selber erstell hast?

Gruß wuf :wink:
Take it easy Mates!
nevergod
User
Beiträge: 46
Registriert: Mittwoch 22. September 2010, 13:22

habs mit der as tk methode versucht, also vor jedes labl button Tk etc ein tk. gesetzt und as tk importiert.

jetzt kommt da "Exception in Tkinter callback" wenn ich das hauptfenster lade. Ich poste mal den gesammten code. (Soll eine art Browsergame im gui werden.)

Code: Alles auswählen

# -*- coding: cp1252 -*-
import Tkinter
import Image
import ImageTk



    
# INTRO_________
import Tkinter as tk

root=tk.Tk()
lab1=tk.Label(root,text="Wilkommen zu Crackgame!!! Dein Dealergame im GUI!!")
lab1.pack()
def newgame():
    newfenster=tk.Tk()
    lab1=tk.Label(newfenster,text="""Bitte den neuen Spielernamen eingeben.
               Alte Spielstände werden überschrieben!""")
    ent1=tk.Entry(newfenster)
    def makeacc():
        accname = ent1.get()
        writefile = open("bin/account/1.txt",'w')
        writefile.close()
        x = open("bin/account/1.txt",'w')
        x.write("%s" % accname)
        x.close()
        writefile = open("bin/account/2.txt",'w')
        writefile.close()
        x = open("bin/account/2.txt",'w')
        x.write("500")
        x.close()
        writefile = open("bin/account/3.txt",'w')
        writefile.close()
        x = open("bin/account/3.txt",'w')
        x.write("1")
        x.close()
        writefile = open("bin/account/4.txt",'w')
        writefile.close()
        x = open("bin/account/4.txt",'w')
        x.write("0")
        x.close()
        writefile = open("bin/account/5.txt",'w')
        writefile.close()
        x = open("bin/account/5.txt",'w')
        x.write("0")
        x.close()
        writefile = open("bin/account/6.txt",'w')
        writefile.close()
        x = open("bin/account/6.txt",'w')
        x.write("0")
        x.close()
        writefile = open("bin/account/7.txt",'w')
        writefile.close()
        x = open("bin/account/7.txt",'w')
        x.write("0")
        x.close()
        writefile = open("bin/account/8.txt",'w')
        writefile.close()
        x = open("bin/account/8.txt",'w')
        x.write("0")
        x.close()
        writefile = open("bin/account/9.txt",'w')
        writefile.close()
        x = open("bin/account/9.txt",'w')
        x.write("0")
        x.close()
        writefile = open("bin/account/10.txt",'w')
        writefile.close()
        x = open("bin/account/10.txt",'w')
        x.write("0")
        x.close()
        writefile = open("bin/account/11.txt",'w')
        writefile.close()
        x = open("bin/account/11.txt",'w')
        x.write("0")
        x.close()
        writefile = open("bin/account/12.txt",'w')
        writefile.close()
        x = open("bin/account/12.txt",'w')
        x.write("0")
        x.close()
        writefile = open("bin/account/13.txt",'w')
        writefile.close()
        x = open("bin/account/13.txt",'w')
        x.write("0")
        x.close()
        writefile = open("bin/account/14.txt",'w')
        writefile.close()
        x = open("bin/account/14.txt",'w')
        x.write("0")
        x.close()
        x = open("bin/account/15.txt",'w')
        x.write("0")
        x.close()
        erfolg=Tk()
        lab1=tk.Label(erfolg,text="Erfolg! Bitte mit Spiel fortsetzen losspielen!")
        lab1.pack()
        but1=tk.Button(erfolg,text="OK",command=erfolg.destroy)
        but1.pack()
        
    okbut=tk.Button(newfenster,text="OK",command=makeacc)
    close=tk.Button(newfenster,text="Abbrechen",command=newfenster.destroy)
    lab1.pack()
    ent1.pack()
    okbut.pack()
    close.pack()
newgame=tk.Button(root,text="Neues Spiel",command=newgame)
def contin():
    fort=tk.Tk()
    lab1=tk.Label(fort,text="Sicherheitsmaßnahme: Bitte geben sie hier ihre ID ein.")
    lab1.grid(columnspan=2)
    identify=tk.Entry(fort)
#HAUPTSPIELFENSTER________________
    def GAME():
        stat=open("bin/account/1.txt",'r')
        eingabe=identify.get()
        name=stat.readline()
        
        if name==eingabe:
            main=tk.Tk()
            space=tk.Label(main,text="")
            wmessage=tk.Label(main,text="""Wilkommen zu "Crackgame" dem Python-Dealergame by NeverGod   """)
            anfertigenbutton=tk.Button(main,text="Drogen herstellen",height=2,width=16)
            verkaufenbutton=tk.Button(main,text="Drogen verkaufen",height=2,width=16)
            gebietebutton=tk.Button(main,text="Gebiete beziehen",height=2,width=16)
            skills=tk.Button(main,text="Skillpunkte vergeben",height=2,width=16)
            veranstaltungen=tk.Button(main,text="Veranstaltungen",height=2,width=16)
            gebaudebutton=tk.Button(main,text="Gebäude",height=2,width=16)
            #LAGERBESTAND_________________
            def lagerwin():
                lager=tk.Tk()
                descript=Label(lager,text="""Wilkommen in deinem Lager! Hier siehst du was du gerade da hasst. Denke daran nicht
                alles selber zu konsumieren!!!""")
                space=Label(lager,text="")
                space2=Label(lager,text="")
                space3=Label(lager,text="")
                space4=Label(lager,text="")
                space5=Label(lager,text="")
                space6=Label(lager,text="")
                def pil_to_tk(pil_image):
                    tk_image = ImageTk.PhotoImage("RGBA", pil_image.size)
                    tk_image.paste(pil_image)
                    return tk_image

                img = Image.open("bin/img/lolliava.gif")
                photo = pil_to_tk(img)
                                 
                lolliimglab=tk.Label(lager, image=photo)
                lollinamelab=tk.Label(lager,text="Lollipop´s : ")
                x=open("bin/account/9.txt",'r')
                lollisread=x.readline()
                lollis=int(lollisread)
                x.close()
                lolliamountlab=tk.Label(lager,text="%s gramm" % lollis)
                
                descript.grid(columnspan=3)
                space.grid(row=2)
                lolliimglab.grid(row=3,column=1)
                lollinamelab.grid(row=3,column=2)
                lolliamountlab.grid(row=3,column=3)
                


                
                
            
            lagerbutton=tk.Button(main,text="Lagerbestand",height=2,width=16,command=lagerwin)
            namelabel=tk.Label(main,text="Name : ")
            def namestat():
                x=open("bin/account/1.txt",'r')
                namestat=x.readline()
                x.close()
            namelabel1=tk.Label(main,text="%s" % namestat)
            def update_name():
                x=open("bin/account/1.txt",'r')
                namestat=x.readline()
                x.close()
                namelabel1.config(text=namestat)
                namelabel1.after(1000,update_name)
                def namestat():
                    x=open("bin/account/1.txt",'r')
                    namestat=x.readline()
                    x.close()              
            namelabel1.after(1000,update_name)

            x=open("bin/account/2.txt",'r')
            geldread=x.readline()
            geld=int(geldread)
            x.close()
            geldlab=Label(main,text="Geld : ")
            geldlabel=Label(main,text="%s $" % geld)
            def update_geld():
                x=open("bin/account/2.txt",'r')
                geldread=x.readline()
                geld=int(geldread)
                x.close()
                geldlabel.config(text="%s $" % geld)
                geldlabel.after(1000,update_geld)
            geldlabel.after(1000,update_geld)

            levellabel=tk.Label(main,text="Level : ")
            def level():
                x=open("bin/account/3.txt",'r')
                levelread=x.readline()
                level=int(levelread)
                x.close()
            levellabel1=tk.Label(main,text=level)
            def update_level():
                x=open("bin/account/3.txt",'r')
                levelread=x.readline()
                level=int(levelread)
                x.close()
                levellabel1.config(text=level)
                levellabel1.after(1000,update_level)
            levellabel1.after(1000,update_level)

            explabel=tk.Label(main,text="EXP : ")
            def exp():
                x=open("bin/account/4.txt",'r')
                expread=x.readline()
                exp=int(expread)
                x.close()
            explabel1=tk.Label(main,text=exp)
            def update_exp():
                x=open("bin/account/4.txt",'r')
                expread=x.readline()
                exp=int(expread)
                x.close()
                explabel1.config(text=exp)
                explabel1.after(1000,update_exp)
            explabel1.after(1000,update_exp)

            splabel=tk.Label(main,text="Skillpoints : ")
            def skillpoint():
                x=open("bin/account/5.txt",'r')
                skillpread=x.readline()
                skillpoint=int(skillpread)
                x.close()
            splabel1=tk.Label(main,text=skillpoint)
            def update_skillpoint():
                x=open("bin/account/5.txt",'r')
                skillpread=x.readline()
                skillpoint=int(skillpread)
                x.close()
                splabel1.config(text=skillpoint)
                splabel.after(1000,update_skillpoint)
            splabel1.after(1000,update_skillpoint)

            chemlevllab=tk.Label(main,text="Chemiker Skilllevel : ")
            def chemlvl():
                x=open("bin/account/6.txt",'r')
                chemlvlread=x.readline()
                chemlvl=int(chemlvlread)
                x.close()
            chemlevllab1=tk.Label(main,text=chemlvl)
            def update_chemlvl():
                x=open("bin/account/6.txt",'r')
                chemlvlread=x.readline()
                chemlvl=int(chemlvlread)
                x.close()
                chemlevllab1.config(text=chemlvl)
                chemlevllab1.after(1000,update_chemlvl)
            chemlevllab1.after(1000,update_chemlvl)
            werblevllab = tk.Label(main,text="Werbegenie Skilllevel : ")
            def werblvl():
                x=open("bin/account/7.txt",'r')
                werblvlread=x.readline()
                werblvl=int(werblvlread)
                x.close()
            werblevllab1 = tk.Label(main,text=werblvl)
            def update_werblvl():
                x=open("bin/account/7.txt",'r')
                werblvlread=x.readline()
                werblvl=int(werblvlread)
                x.close()
                werblevllab1.config(text=werblvl)
                werblevllab1.after(1000,update_werblvl)
            werblevllab1.after(1000,update_werblvl)
            verhlevllab = tk.Label(main,text="Verhandlngsgeschick Skilllevel : ")
            def verhlvl():
                x=open("bin/account/8.txt",'r')
                verhlvlread=x.readline
                verhlvl=int(verhlvlread)
                x.close()
            verhlevellab1=tk.Label(main,text=verhlvl)
            def update_verhlvl():
                x=open("bin/account/8.txt",'r')
                verhlvlread=x.readline()
                verhlvl=int(verhlvlread)
                x.close()
                verhlevellab1.config(text=verhlvl)
                verhlevellab1.after(1000,update_verhlvl)
            verhlevellab1.after(1000,update_verhlvl)

            ruhmlabel=tk.Label(main,text="Ruhm : ")
            def ruhm():
                x=open("bin/account/15.txt",'r')
                ruhmread=x.readline()
                ruhm=int(ruhmread)
                x.close()
            ruhmlabel1=tk.Label(main,text=ruhm)
            def update_ruhm():
                x=open("bin/account/15.txt",'r')
                ruhmread=x.readline()
                ruhm=int(ruhmread)
                x.close()
                ruhmlabel1.config(text=ruhm)
                ruhmlabel1.after(1000,update_ruhm)
            ruhmlabel1.after(1000,update_ruhm)
            space2=tk.Label(main,text="")
            space.grid()
            wmessage.grid(column=1,columnspan=3)
            anfertigenbutton.grid(row=2)
            verkaufenbutton.grid(row=4)
            gebietebutton.grid(row=6)
            skills.grid(row=8)
            veranstaltungen.grid(row=10)
            gebaudebutton.grid(row=12)
            lagerbutton.grid(row=14)
            namelabel.grid(row=3,column=2)
            namelabel1.grid(row=3,column=3)
            geldlab.grid(row=4,column=2)
            geldlabel.grid(row=4,column=3)
            levellabel.grid(row=5,column=2)
            levellabel1.grid(row=5,column=3)
            explabel.grid(row=6,column=2)
            explabel1.grid(row=6,column=3)
            splabel.grid(row=7,column=2)
            splabel1.grid(row=7,column=3)
            chemlevllab.grid(row=8,column=2)
            chemlevllab1.grid(row=8,column=3)
            werblevllab.grid(row=9,column=2)
            werblevllab1.grid(row=9,column=3)
            verhlevllab.grid(row=10,column=2)
            verhlevellab1.grid(row=10,column=3)
            ruhmlabel.grid(row=11,column=2)
            ruhmlabel1.grid(row=11,column=3)
            space.grid(row=13)
            
            
        else:
            noway=tk.Tk()
            label=tk.Label(noway,text="Falsche ID!!")
            button=tk.Button(noway,text="OK",command=noway.destroy)
            label.pack()
            button.pack()
#HAUPTSPIELFENSTER ENDE_______
        
    Identok=tk.Button(fort,text="Fortsetzen!",command=GAME)
    identify.grid(row=2,column=0)
    Identok.grid(row=2,column=1)
continuegame=tk.Button(root,text="Fortsetzen",command=contin)
close=tk.Button(root,text="Schließen",command=root.destroy)
newgame.pack()
continuegame.pack()
close.pack()
root.mainloop()
#INRO ENDE________
was mache ich falsch :S
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Weil du zweimal Tkinter lädst

Code: Alles auswählen

# -*- coding: cp1252 -*-
import Tkinter # <----- hier
import Image
import ImageTk

# INTRO_________
import Tkinter as tk # <----- und hier
du darfst das modul nur einmal laden.
Das "as" dient nur als zuweisung für einen anderen Namen zur Erreibarkeit des Moduls.
Nur um das Tkinter etwas kürzer zu machen, bei nur "import Tkinter", müsstest du immer Tkinter.Button(...) schreiben.

Das war nur da um es dir etwas leichter zumachen, das überall hinzuzufügen.
Also so wie es jetzt ist musst du einfach nur das "import Tkinter" oben raus nehmen.
Zuletzt geändert von Xynon1 am Donnerstag 14. Oktober 2010, 13:40, insgesamt 1-mal geändert.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Antworten