ich will eine Anwendung schreiben bei der in einem tkinter Fenster durch einen Button ein zweites tkinter Fenster geöffnet werden soll - und in diesem zweiten Fenster soll unter anderem ein png Bild dargestellt werden.
Wichtig dabei ist, dass das erste Fenster aktiv bleibt und man dort weiterarbeiten kann.
Bis auf das Bild funktioniert auch alles wie gewollt, sobald ich
einkommentiere kommt diese Fehlermeldung:self.pictureout = Label(master = self.frame, image = self.picture)
Wenn ich allerdings bei dem zweiten Script die letzte Zeile einkommentiere und dieses Scipt direkt starte funktioniert das Bild.Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.10/tkinter/__init__.py", line 1921, in __call__
return self.func(*args)
File "/home/thomas/Programme/Python/testumgebung/simple_starter.py", line 9, in start
a = frontend()
File "/home/thomas/Programme/Python/testumgebung/tk_fe_test_simple.py", line 16, in __init__
self.pictureout = Label(master = self.frame, image = self.picture)
File "/usr/lib/python3.10/tkinter/__init__.py", line 3187, in __init__
Widget.__init__(self, master, 'label', cnf, kw)
File "/usr/lib/python3.10/tkinter/__init__.py", line 2601, in __init__
self.tk.call(
_tkinter.TclError: image "pyimage1" doesn't exist
Hier das Starter Script:
Code: Alles auswählen
#!/usr/bin/python3
from tkinter import *
from tk_fe_test_simple import frontend
def main():
def start():
a = frontend()
window = Tk()
window.geometry('500x500')
button = Button(master = window, text = "Start", width = 20, command = start)
button.pack(anchor = 'w')
mainloop()
main()
Code: Alles auswählen
#!/usr/bin/python3
from tkinter import *
class frontend:
def __init__(self):
self.window = Tk()
self.window.geometry('1200x500')
self.frame = Frame(master = self.window)
self.frame.pack( side = RIGHT,anchor = 'ne', padx = 8, pady = 8 )
self.picture = PhotoImage(file = "leer.png")
print (type(self.picture))
self.pictureout = Label(master = self.frame, image = self.picture)
self.pictureout.pack (anchor = 'w')
self.window.mainloop()
#a = frontend()
Beide Scripte und auch das Bild sind im gleichen Verzeichnis.
Der Typ von self.picture (print) ist in beiden Fällen <class 'tkinter.PhotoImage'>
Kann mir da jemand helfen oder einen Rat geben ?
Vielen Dank im Voraus
tom
P.S. Ich verwende Python 3.10.12 auf Linux Mint 21.2