Image-Problem

Fragen zu Tkinter.
Antworten
DMD-OL
User
Beiträge: 315
Registriert: Samstag 26. Dezember 2015, 16:21

hi
hab hier eine ausnahme, die ich nicht verstehe.

Code: Alles auswählen

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

import Tkinter
from PIL import ImageTk, Image, ImageDraw, ImageFont

def impressum():
    imp_fenster = Tkinter.Toplevel(backwin)
    imp_fenster.title("Impressum")
    img = Image.new('RGB',(75, 75),white)
    d = ImageDraw.Draw(image1)
    d.text((10, 20), 'Kein Bild\nvorhanden!', fill=(255, 0, 0))
    label = Tkinter.Label(imp_fenster,image = img)
    label.image = img
    label.place(x=40,y=15)

backwin = Tkinter.Tk()
backwin.wm_geometry("500x500+50+50")
backwin.configure(background='black')
b3 = Tkinter.Button(backwin, text=("Impressum"), font=('Arial', 8, 'bold'), height=2, width=25, relief="raised", borderwidth=2, fg='#000000000', justify='center',command=impressum)
b3.place(relx=.8, rely=.9, anchor="c")

backwin.mainloop()
BlackJack

@DMD-OL: ``NameError: global name 'white' is not defined`` bedeutet das der globale Name `white` nicht definiert ist.
DMD-OL
User
Beiträge: 315
Registriert: Samstag 26. Dezember 2015, 16:21

oh habs geändert.
jetzt lautet die ausnahme:
TclError: image "<PIL.Image.Image image mode=RGB size=75x75 at 0x8210890>" doesn't exist
habs jetzt so:

Code: Alles auswählen

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

import Tkinter
from PIL import ImageTk, Image, ImageDraw, ImageFont

def impressum():

    imp_fenster = Tkinter.Toplevel(backwin)
    imp_fenster.title("Impressum")
    white = (255,255,255)
    img = Image.new('RGB',(75, 75),white)
    d = ImageDraw.Draw(img)
    d.text((10, 20), 'Kein Bild\nvorhanden!', fill=(255, 0, 0))
    label = Tkinter.Label(imp_fenster,image = img)
    label.image = img
    label.place(x=40,y=15)

backwin = Tkinter.Tk()
backwin.wm_geometry("500x500+50+50")
backwin.configure(background='black')
b3 = Tkinter.Button(backwin, text=("Impressum"), font=('Arial', 8, 'bold'), height=2, width=25, relief="raised", borderwidth=2, fg='#000000000', justify='center',command=impressum)
b3.place(relx=.8, rely=.9, anchor="c")

backwin.mainloop()
Zuletzt geändert von Anonymous am Montag 30. Januar 2017, 19:00, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

@DMD-OL: Label wandelt das Image-Objekt in einen String um und versucht das als Dateinamen zu benutzen. Du importierst ImageTk benutzt es aber nicht.
Antworten