Jpg anzeigen ... *auf schlauch steh*

Fragen zu Tkinter.
Antworten
Artes
User
Beiträge: 6
Registriert: Freitag 24. Februar 2006, 22:18

Freitag 24. Februar 2006, 22:26

Also ...

ich habe mich nun in knapp 24 Stunden soweit durchgewuselt das ich wenigstens was habe, was man sich anschauen kann...

Nur würde ich gerne noch eine Grafik einbinden die man halt sehen kann und, trotz intensivem suchen hier im Forum, hab ich es wohl überlesen oder nicht gefunden ...

Ich würde mir gerne aus dem Pfad /images/ die Datei logo.jpg darstellen lassen und zwar über dem Text ...

Nicht wundern das es rückwärts geht im Alphabet, habe es anhand von Tutorials geschrieben und einfach immer erweitert...

Code: Alles auswählen

from Tkinter import*
top = Tk()
dir(top)
F = Frame(top)
F.pack()
lHallo = Label(F,text="Dies ist der XXXXXX-Starter aber noch im Bau!")
lHallo.pack()
E = Frame(top)
E.pack()
kHallo = Label(E,text="Ich kann noch nicht einmal gut aussehen!")
kHallo.pack()
D = Frame(top)
D.pack()
dHallo = Label(D,text="Nur halt da sein, und nicht mehr und noch viel weniger!")
dHallo.pack()
F.master.title("XXXXXX-Starter @ By Artes 2006")
bQuit = Button(D,text="Schliessen",command=D.quit)
bQuit.pack()
top.mainloop()
Vllt. kann mir ja einer helfen ... habe mir auch PIL gedownloadet, aber hilft mir momentan nicht wirklich weiter... leider

Liebe Grüße

Artes
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

Samstag 25. Februar 2006, 01:28

ohne deinen Code zu verändern sieht es so aus:
(siehe Thread)

Code: Alles auswählen

from Tkinter import*
top = Tk()
dir(top)

c = Canvas(top, width="2c",height="2c")
c.pack()
bild = PhotoImage(file=r"/pfad/zum/bild.gif")
c.create_image(0, 0, anchor=NW, image=bild)

F = Frame(top)
F.pack()
lHallo = Label(F,text="Dies ist der XXXXXX-Starter aber noch im Bau!")
lHallo.pack()
E = Frame(top)
E.pack()
kHallo = Label(E,text="Ich kann noch nicht einmal gut aussehen!")
kHallo.pack()
D = Frame(top)
D.pack()
dHallo = Label(D,text="Nur halt da sein, und nicht mehr und noch viel weniger!")
dHallo.pack()
F.master.title("XXXXXX-Starter @ By Artes 2006")
bQuit = Button(D,text="Schliessen",command=D.quit)
bQuit.pack()
top.mainloop()

Achte bitte auf:

Code: Alles auswählen

bQuit = Button(top,text="Schliessen",command=top.quit)
du willst top schließen und nicht den Frame d oder habe ich das falsch verstanden?


Warum legst du die Textlables alle auf eigene Frames?
hier ohne

Code: Alles auswählen

from Tkinter import*

top = Tk()

c = Canvas(top, width="2c",height="2c")
c.pack()
bild = PhotoImage(file=r"/pfad/zum/bild.gif")
c.create_image(0, 0, anchor=NW, image=bild)

Hallo = Label(top,text="Dies ist der XXXXXX-Starter aber noch im Bau!")
Hallo.pack()

kHallo = Label(top,text="Ich kann noch nicht einmal gut aussehen!")
kHallo.pack()

dHallo = Label(top,text="Nur halt da sein, und nicht mehr und noch viel weniger!")
dHallo.pack()

bQuit = Button(top,text="Schliessen",command=top.quit)
bQuit.pack()
und weils so schön ist hier noch einer:

Code: Alles auswählen

rom Tkinter import*

top = Tk()

mehrzeiliger_text = """Dies ist der XXXXXX-Starter aber noch im Bau!
Ich kann noch nicht einmal gut aussehen!
Nur halt da sein, und nicht mehr und noch viel weniger!
"""

c = Canvas(top, width="5c",height="5c")
c.pack()
bild = PhotoImage(file=r"/pfad/zum/bild.gif")
c.create_image(0, 0, anchor=NW, image=bild)

Hallo = Label(top,text=mehrzeiliger_text)
Hallo.pack()

bQuit = Button(top,text="Schliessen",command=top.quit)
bQuit.pack()

top.mainloop()
pil ist doch schon in Python enthalten oder irre ich mich da?
Benutzeravatar
Hannes-Spz
User
Beiträge: 123
Registriert: Sonntag 7. August 2005, 22:42

Samstag 25. Februar 2006, 15:14

nein, leider ist die Python-Image-Libary noch nicht in Python ansich enthalten...

aber ein kleiner vorschlag:
mein pc hängt sich an der stelle

Code: Alles auswählen

bQuit = Button(top,text="Schliessen",command=top.quit)
immer auf. Ihr könntet doch auch mit

Code: Alles auswählen

bQuit = Button(top,text="Schliessen",command=top.destroy)
(destroy statt quit) arbeiten, dann kommen menschen wie ich nicht durcheinander,
wenn ihr pc dauernd "tschüssie" ruft :wink:

liebe Grüße
Hannes
Artes
User
Beiträge: 6
Registriert: Freitag 24. Februar 2006, 22:18

Samstag 25. Februar 2006, 15:22

hmm .... wenn ich des so mache wie du dann krieg ich folgende Fehlermeldung und er zeigt mir nichmal mehr den text an...

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Python24\test2.py", line 11, in ?
    bild = PhotoImage(file=r"/images/logo.gif")
  File "C:\Python24\lib\lib-tk\Tkinter.py", line 3203, in __init__
    Image.__init__(self, 'photo', name, cnf, master, **kw)
  File "C:\Python24\lib\lib-tk\Tkinter.py", line 3159, in __init__
    self.tk.call(('image', 'create', imgtype, name,) + options)
TclError: couldn't open "/images/logo.gif": no such file or directory
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

Samstag 25. Februar 2006, 15:56

Artes hat geschrieben:hmm .... wenn ich des so mache wie du
Was machst du wie wer?
Artes hat geschrieben:

Code: Alles auswählen

TclError: couldn't open "/images/logo.gif": no such file or directory
Unter Windows werden \ anstelle von / benutzt. Ich benutzte zum testen Linux und habe nicht dran gedacht auf die Pade zu achten.
Artes
User
Beiträge: 6
Registriert: Freitag 24. Februar 2006, 22:18

Samstag 25. Februar 2006, 16:01

joah kam ich auch drauf nachdem ich mir nochmal drüber guggte und meine ich hab des mal wo gelesen hier im forum ^^

Also, ich seh des Bild nur wenn ich des mit

CMD -> setup.py py2exe

mache bekomme ich bei

test2.exe folgende Fehlermeldung

Code: Alles auswählen

Traceback (most recent call last):
  File "test2.py", line 14, in ?
  File "PIL\Image.pyc", line 1717, in open
IOError: [Errno 2] No such file or directory: 'logo.gif'
Vllt. weiss noch jmd. was?

und wenn ich des umstelle kommt halt Fehlermeldung das er die Datei nicht identifizieren kann....

*ratlos reinblicks* ^^
Benutzeravatar
Hannes-Spz
User
Beiträge: 123
Registriert: Sonntag 7. August 2005, 22:42

Samstag 25. Februar 2006, 16:47

wenn du diese fehlermeldung von der CMD bekommst, würde ich darauf schließen,
dass der pfad in der setup.py des bildes nicht mit dem tatsächlichen relativen pfad übereinstimmt...

Code: Alles auswählen

data_files=[("Neuer Ordner",[r".\logo.gif",r".\minibildchen.jpg"])]
steht in meiner setup
das heißt: in dem ordner, wo meine setup.py und meine meine_haupt_datei.py liegen, muss sich
1. der ordner "Neuer Ordner" befinden und
2. in diesem Ordner müssen die beiden Bilddateien liegen...

Ich bin mir aber nicht mehr so genau sicher, hoffe aber geholfen zu haben.

Hannes
Artes
User
Beiträge: 6
Registriert: Freitag 24. Februar 2006, 22:18

Samstag 25. Februar 2006, 17:00

also über cmd ruf ich die konvertierungsgeschichte über

setup.py py2exe auf

setup.py

Code: Alles auswählen

from distutils.core import setup 
import py2exe 

data_files=[("images",[r".\logo.gif",r".\logo.gif"])]
setup(windows=["test.py"]) 
steht nun des....

test.py

Code: Alles auswählen

from Tkinter import*
from PIL import Image, ImageTk
top = Tk() 

Begruess_Text = """Dies ist der XXX-Starter!
Dieser befindet sich noch in Bau und soll spaeter
auf aktuelle Updates und Veraenderungen reagieren!
In seiner Endversion soll dieser Starter das nutzen von 3rd-Party Tools
komplett unterbinden

Artes
"""

image = Image.open('logo.gif')
photo = ImageTk.PhotoImage(image)
Label(image=photo).pack()

Hallo = Label(top,text=Begruess_Text)
Hallo.pack()

bQuit = Button(top,text="Schliessen",command=top.destroy)
bQuit.pack()

F = Frame(top)
F.pack
F.master.title("XXXX-Starter @ By Artes 2006") 

top.mainloop()
kommt die fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "test.py", line 14, in ?
  File "PIL\Image.pyc", line 1717, in open
IOError: [Errno 2] No such file or directory: 'logo.gif'
Artes
User
Beiträge: 6
Registriert: Freitag 24. Februar 2006, 22:18

Samstag 25. Februar 2006, 18:19

Also ...

herzlichen Dank an Alle die hier geantwortet haben!

Ich musste sage und schreibe 3 Stunden nochmal nachdenken und Mr_Snede's Beispiel half dann...

Danköööö
Antworten