Canvas-Bild größer als Form

Fragen zu Tkinter.
Antworten
Benutzeravatar
classic
User
Beiträge: 23
Registriert: Mittwoch 3. September 2008, 15:37
Wohnort: Erfurt bzw Lauchröden

Hallo,

ich habe folgendes Problem:

Ich habe ein Bild, welches ich mit PIL in meine Canvas einfüge.
Allerdings ist das Bild so groß, dass es nicht ganz auf meinem Bildschirm angezeigt wird (Auflösung zu klein [SInd nur 768 Pixel]). (Ich weiß das, da gängige Bildbetrachter es automatisch verkleineren)

Nun habe ich mir gedacht, es wäre sinnvoll eine Scrollbar zu erstellen, damit ich dieses Bild scrollen kann, allerdings funktioniert das nicht.
Die Scrollbar ist zwar so groß wie das Fenster, aber ausgegraut, obwohl das Canvas nicht das ganze Bild anzeigt.

Weiß jemand warum das so ist?
Suche schon benutzt, aber nichts gefunden.

Da das Programm für den BWInf ist, möchte ich nicht den ganzen Code posten, deshalb hier ein Auschnitt:

Code: Alles auswählen

import Image,ImageTk, Tkinter as tk

root=tk.Tk()
root.rowconfigure(0,weight=4)
root.columnconfigure(0,weight=4)

#Bild in Canvas laden
myimg1=Image.open('karte.png')
myimg=ImageTk.PhotoImage(myimg1)
imgwidth=myimg.width()
imgheight=myimg.height()
canv=tk.Canvas(root,width=imgwidth,height=imgheight)
canv.grid(row=0,column=0)
canvimg=canv.create_image(0,0,anchor='nw',image=myimg)
#Scrollbar
myscrollbar=tk.Scrollbar(root,command=canv.yview)
myscrollbar.grid(row=0,column=1,sticky='NSEW')
canv.config(yscrollcommand=myscrollbar.set)

root.mainloop()
(siehe zu karte.png diesen Link: http://bwinf.de/uploads/media/karte.png)


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

Hallo classic

Vor root.mainloop() einfach diese Zeile reinschieben:

Code: Alles auswählen

canv.config(scrollregion=canv.bbox('all'))
Gruss wuf :wink:
Take it easy Mates!
Benutzeravatar
classic
User
Beiträge: 23
Registriert: Mittwoch 3. September 2008, 15:37
Wohnort: Erfurt bzw Lauchröden

Dankeschön :P

Es funktioniert :wink:
Antworten