habe ein Problem mit Canvas.
Habe ein Programm geschreiben, dass auf eine EIngabe in ein Eingabefeld wartet, dann das Feld ausließt und das Hintergrundbild ändert. Funktioniert.
So, aber dann soll es auch noch neue Labels bzw Button anzeigen, die ich mit canvas.create_window hinzufüge. und die tauchen einfach nicht mehr auf. Also wenn ioch das Programm starte und die Eingabe auslese, sehe ich weder mein Label noch meien neuen Buttons.
Hier wäre der Code (gekürzt)
Code: Alles auswählen
from __future__ import absolute_import, division, print_function
import tkinter as tk
from tkinter import Button
from tkinter import messagebox
from tkinter import Entry
from tkinter import Label
from PIL import Image, ImageTk
from functools import partial
from itertools import cycle
#Label Defs
meme_def = "Memes entstehen aus Bildern, Videos, Blogs, Texten oder ganzen Webseiten,\ndie sich wie Lauffeuer über das Internet verbreiten. ... \nDiese Bilder, Wörter und Videos verbreiten sich rasend schnell viral im Netz – \nvor allem über soziale Netzwerke, aber auch über Webseiten wie 9GAG, reddit und Twitter."
#Vorab, sonst Bugs
fenster = tk.Tk()
def next_image(canvas, item_id, images):
image = next(images)
canvas.config(width=image.width(), height=image.height()) #Kann des weg? -Nö
canvas.itemconfig(item_id, image=image)
fenster.geometry("1920x1080")
images = cycle(
ImageTk.PhotoImage(Image.open(filename))
for filename in ['Dudel_Glow_fertig.jpg', 'Dudel_klein_fertig.jpg']
)
canvas = tk.Canvas(fenster, highlightthickness=0)
canvas.pack()
background = canvas.create_image(0, 0, anchor=tk.NW)
#defs:
eingabefeld = Entry(fenster, bd=12, width=110)
eingabe = eingabefeld.get()
def Suchanfrage():
next_image(canvas, images, images)
eingabe = eingabefeld.get()
eingabefeld.destroy()
Sucheingabe = Entry(fenster, bd=12, width=110)
canvas.create_window(500, 70, window=Sucheingabe, anchor="nw")
entry_button2 = Button(fenster, text="Suchen", command=Suchanfrage)
canvas.create_window(550, 700, window=entry_button2)
if "Test" in eingabe:
messagebox.showinfo(message="Getestet! Alles funktioniert!")
elif eingabe == "Test_Programm":
import Test_Programm.py
elif "meme" in eingabe:
meme_label = Label(fenster, text=meme_def)
canvas.create_window(1000, 1000, window=meme_label)
#Hier unten sind dann noch die ganzen Button und alten Canvas-Dinger, die sind aber egal...