Seite 3 von 3
Re: Bild Datei bei Tkinter verwenden!!!!!!!!!!!!!
Verfasst: Freitag 14. August 2015, 09:44
von Sirius3
@
Nic_Kobrasi@web.de: ich hab nichts wirklich Neues, als Du in Deinem Beispiel. Dass da zwei Bilder sind, liegt daran, dass Du einmal ein Canvas und einmal ein Label erzeugt hast.
Re: Bild Datei bei Tkinter verwenden!!!!!!!!!!!!!
Verfasst: Freitag 14. August 2015, 10:31
von Nic_Kobrasi@web.de
welches ist das, das sich dann später bewegen soll ?
Re: Bild Datei bei Tkinter verwenden!!!!!!!!!!!!!
Verfasst: Freitag 14. August 2015, 10:32
von Nic_Kobrasi@web.de
hab den code jetzt so geschrieben jetzt ist nur noch ein mänchen drauf
Code: Alles auswählen
import tkinter as tk
import random
import time
IMAGENAME = r"C:\Users\Nicolai\Desktop\Python lernen\Stickman_stand.gif"
class Figur:
def __init__(self, canvas, img):
self.canvas = canvas
self.img = img
self.img_id = self.canvas.create_image(0, 0, image=img)
self.canvas.move(self.img_id, 245, 100)
self.x = -3
self.y = -3
self.canvas_height = self.canvas.winfo_height()
self.canvas_width = self.canvas.winfo_width()
def main():
root = tk.Tk()
root.title("Stickmans' Adeventure")
root.resizable(1, 1)
root.wm_attributes("-topmost", 1)
canvas = tk.Canvas(root, width=500, height=500, bd=0, highlightthickness=0)
canvas.pack()
img = tk.PhotoImage(file=IMAGENAME)
figure = Figur(canvas, img)
root.mainloop()
if __name__ == '__main__':
main()
Re: Bild Datei bei Tkinter verwenden!!!!!!!!!!!!!
Verfasst: Freitag 14. August 2015, 13:23
von Alfons Mittelmeyer
cofi hat geschrieben:Nein, wenn man mit Tkinter arbeitet will man absolut keinen Stern-Import:
Tk (Python2) importiert 182 Namen das ist absolut nicht ueberschaubar und die Namen sind generisch genug, dass sie sich mit anderen ueberschneiden koennen.
Stimmt braucht man nicht alles. Aber wenn man eine GUI schreibt, wäre es nicht schlecht, schon mal die Widgets zu importieren:
Code: Alles auswählen
from tkinter import Tk
from tkinter import Message
from tkinter import Label
from tkinter import Button
from tkinter import Radiobutton
from tkinter import Checkbutton
from tkinter import Entry
from tkinter import Spinbox
from tkinter import Scrollbar
from tkinter import Text
from tkinter import Listbox
from tkinter import Frame
from tkinter import LabelFrame
from tkinter import Scale
from tkinter import PanedWindow
from tkinter import Canvas
from tkinter import Menubutton
from tkinter import Menu
Aber man möchte vielleicht bei Pack auch LEFT, RIGHT, BOTTOM, TOP haben. Das könnte man zwar auch kleingeschrieben als String schreiben, ober ohne String direkt sieht es besser aus.
Vielleicht sollte man einmal eine Liste erstellen, was man importieren sollte.
Und wenn das Programm fertig ist, kann man bei den imports ja wieder herauslöschen, was man nicht gebraucht hat.
Ja, da wären auch die reliefs oder anchor, wofür es Definitionen gibt, auch X und Y etwa für Mauskoordinaten. Da müßte man wirklich mal nachdenken, was da sinnvoll wäre schon einmal zu importieren.
Beim GuiEditor brauche ich so ziemlich fast alles. da sollte ich wohl dann auch fast alles importieren.
Re: Bild Datei bei Tkinter verwenden!!!!!!!!!!!!!
Verfasst: Freitag 14. August 2015, 13:36
von Sirius3
@Alfons Mittelmeyer: man kann auch mehrere Namen gleichzeitig importieren. Aber wie schon geschrieben bevorzuge ich das "import tkinter as tk".
Re: Bild Datei bei Tkinter verwenden!!!!!!!!!!!!!
Verfasst: Freitag 14. August 2015, 13:39
von cofi
Und das kannst du alles nicht nutzen, wenn du stattdessen `tkinter.` oder sogar nur `tk.` davor schreiben musst? Du redest hier von vielleicht 40 Namen, die du sehr wahrscheinlich gar nicht alle auf einmal brauchst, und damit nicht einmal die Haelfte der importierten Namen darstellen.
Auch schoen, dass du die Namen einzeln importierst, statt sie einfach in einem Import aufzulisten.
Re: Bild Datei bei Tkinter verwenden!!!!!!!!!!!!!
Verfasst: Sonntag 16. August 2015, 19:29
von Alfons Mittelmeyer
Sirius3 hat geschrieben:@Alfons Mittelmeyer: man kann auch mehrere Namen gleichzeitig importieren. Aber wie schon geschrieben bevorzuge ich das "import tkinter as tk".
Wenn man das bevorzugt, dann kann man das so machen. Aber warum Sternchenimporte kritisieren. Bei mehreren Sternchenimporten kann es Überschneidungen geben. Aber einen Sternchenimport finde ich praktisch.
Außerdem muss ich bei DynTkInter einen Sternchenimport machen. Denn das ist eine tkinter Erweiterung und muss daher alles anbieten, was tkinter hat. Teils bekommt der User dann was bei DynTkInter erweitert ist und alles andere über meinen Sternchenimport von tkinter.
Re: Bild Datei bei Tkinter verwenden!!!!!!!!!!!!!
Verfasst: Sonntag 16. August 2015, 20:12
von Ene Uran
Tkinter kann nur .GIF Bilder zeigen. Für ein .PNG Bild musst Du PIL (pillow) mit Tkinter benützen.
Hier ein Beispiel ...
Code: Alles auswählen
''' Tk_Canvas_Image.py
display an image using Tkinter and PIL
use a canvas so you can delete the image (eg. slide show)
PIL allows Tkinter to read more than just .gif image files
used PIL fork Pillow (newer version of PIL) from:
https://pypi.python.org/pypi/Pillow/2.0.0
'''
from PIL import ImageTk
try:
# Python2
import Tkinter as tk
except ImportError:
# Python3
import tkinter as tk
root = tk.Tk()
# pick an image file you have in your working directory
# or specify full path
image_file = "LAKE2.png"
photo = ImageTk.PhotoImage(file=image_file)
root.title(image_file)
# put the image on a canvas
cv = tk.Canvas()
cv.pack(side='top', fill='both', expand='yes')
img = cv.create_image(0, 0, image=photo, anchor='nw')
cv.update()
# optionally delete image after 5000 ms
cv.after(5000, cv.delete(img))
cv.update()
root.mainloop()