Merhaba iyi çalışmalar hepinize;
oluşturduğum ana pencere üzerine bir buton yerleştirdim bu butona tıklayınca pencere2 oluşturdum ve pencere2’ninde üstüne butonlar yerleştirdim ancak ikinci pencerenin üstüne herhangi bir resim yerleştiremiyorum bu sorun ilk penceremde yaşamıyorum bunun nedeni nedir nasıl ekleyebilirim bu arada herhangi bir hata da almıyorum sadece boş gri gözüküyor ve resim eklemiş olduğum butonlarım click işlemine izin vermiyor
Merhaba, yazdığınız kodları bizimle paylaşır mısınız? Daha sağlıklı bir çözüm yolu izlememize yardımcı olacaktır.
Kodlarınızı ```` arasına almayı unutmayın.
# ```` ile ```` arasına
Tabi ki kod epeyce uzun size sorduğum kısmı yanlızca paylaşmaya çalışıyorum umarım anlaşılırdır, epeyce acemiyim bu arada sorduğum şey root3’te down.png’yi görüntüleyememek
def settingss():
def girisyapma():
parola = parolagiris.get()
if (parola == sifre):
root.destroy()
root2.destroy()
root3= tk.Tk()
root3.geometry("400x600")
root3.resizable(width=tk.FALSE, height=tk.FALSE)
haberlesme_img(root3, file="down.png")
haberlesme=tk.Button(root3, command=haberlesme_baslat, bg="green")
haberlesme.pack()
sifre = "12345"
root2=tk.Tk()
parola= tk.Label(root2,text="Servis Şifresi")
parola.pack()
parolagiris = tk.Entry(root2, width=8, show="*")
parolagiris.pack()
giris = tk.Button(root2, text="Giriş", command=girisyapma)
giris.pack()
girisdurumu = tk.Label(root2, text="")
girisdurumu.pack()
root2.mainloop()
root = tk.Tk()
pgen=170
pyuks=350
ekrangen = root.winfo_screenwidth()
ekranyuks = root.winfo_screenheight()
x = (ekrangen - pgen-10)
y = (ekranyuks - pyuks - 70)
root.geometry("%dx%d+%d+%d"%(pgen, pyuks, x, y))
root.resizable(width=tk.FALSE, height=tk.FALSE)
settings = ImageTk.PhotoImage(file="key.png")
settings_button = tk.Button(root, image= settings, bg="white", command=settingss, borderwidth=0.5)
settings_button.place(relx=0.85, rely=0.172)
root3 için mainloop var mı?
aa evet sorun buymuş çok teşekkür ediyorum nasıl gözümden kaçtı
Estağfurullah, dediğim gibi kodları görebilirsek okuyabilir ve yardımcı oluruz. Başarılar dilerim.
Peki neden herhangi bir almadım ve root3 oluştu
mainloop oluşturmak için değil döngü içerisinde sürdürülebilir hale gelip üzerinde kodlar çalışması için gerekiyor.
mainloop olmasa da pencere gelir. Ama pencere üzerinde işlem yapabilmeniz için mainloop döngüsüne girmesi lazım ki her an kendini güncelleyerek aktifliğini devam ettirsin. öbür türlü açıldığı an işlevi sonlanıyor.
root3
oluştu ama mainloop
olmadığı için anında sonlandı.
Merhaba,
Aynı sorunu ben de yaşıyorum.
Deneme için Aynı resmi hem ana pencerede hem de ikinci pencerede görüntülemek istiyorum ama ana pencerede görünmesine rağmen ikinci pencerede görünmüyor.
Yukarıdaki mesajda yazdığı gibi mainloop() eklememe rağmen hata veriyor.
from tkinter import Tk, ttk, Label, PhotoImage
pencere= Tk()
pencere.title("Tkinter ile Resim Ekle")
pencere.geometry("500x700")
Label(pencere, text= "Tkinter ile Pencereye Resim Ekleyelim", font=('Helvetica 15 bold')).pack(pady=20)
def pencereyi_goster():
resim_penceresi= Tk()
resim_penceresi.geometry("700x700")
resim_penceresi.title(".:: Resim Penceresi ::.")
etiket_resim_metni = Label(resim_penceresi, text="GÖRSEL YARDIM RESMİ AŞAĞIDA GÖRÜNMELİ").pack(pady=20)
resim = PhotoImage(file="parametre.png")
etiket_resim = Label(resim_penceresi, image=resim).pack()
resim_penceresi.mainloop()
buton= ttk.Button(pencere, text="Yardım" ,command=pencereyi_goster)
buton.pack(pady=20)
resim = PhotoImage(file="parametre.png")
etiket_resim = Label(pencere, image=resim).pack(pady=20)
pencere.mainloop()
Hata mesajı:
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.12/tkinter/__init__.py", line 1967, in __call__
return self.func(*args)
^^^^^^^^^^^^^^^^
File "/home/halil/Documents/GitHub/dnm.py", line 16, in pencereyi_goster
etiket_resim = Label(resim_penceresi, image=resim).pack()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/tkinter/__init__.py", line 3237, in __init__
Widget.__init__(self, master, 'label', cnf, kw)
File "/usr/lib/python3.12/tkinter/__init__.py", line 2648, in __init__
self.tk.call(
_tkinter.TclError: image "pyimage2" doesn't exist
Farklı sitelerden kod araştırması yapıp denesem de değişen tek şey hatadaki sayı oluyor Yani;
_tkinter.TclError: image "pyimage1" doesn't exist
_tkinter.TclError: image "pyimage2" doesn't exist
_tkinter.TclError: image "pyimage5" doesn't exist
Ana Pencere:
İkinci pencere:
var olan bir pencerede başka bir pencere oluşturmak istiyorsak Tk() yerine Toplevel() widgeti çok daha efektif olacaktır. tk() uygulamanın tamamını kapsar fakat toplevel sadece o uygulamada pencereyi temsil eder. Var olan pencerede bir daha tk kullanmak başka bir deyişle uygulama içerisine uygulama açmak gibi oluyor. Fakat toplevel widgetini kullanırsanız o uygulamaya bağlı pencere açmış olursunuz.
Sorun fonksiyon içerisinde oluşturulan pencerede. Toplevel sınıfını dahil ederek sorunlu yeri değiştirdiğimizde sorun çözülüyor.
kod betiği:
from tkinter import Tk, ttk, Label, PhotoImage, Toplevel
pencere= Tk()
pencere.title("Tkinter ile Resim Ekle")
pencere.geometry("500x700")
Label(pencere, text= "Tkinter ile Pencereye Resim Ekleyelim", font=('Helvetica 15 bold')).pack(pady=20)
def pencereyi_goster():
resim_penceresi= Toplevel()
resim_penceresi.geometry("700x700")
resim_penceresi.title(".:: Resim Penceresi ::.")
etiket_resim_metni = Label(resim_penceresi, text="GÖRSEL YARDIM RESMİ AŞAĞIDA GÖRÜNMELİ").pack(pady=20)
resim = PhotoImage(file="parametre.png")
etiket_resim = Label(resim_penceresi, image=resim).pack()
resim_penceresi.mainloop()
buton= ttk.Button(pencere, text="Yardım" ,command=pencereyi_goster)
buton.pack(pady=20)
resim = PhotoImage(file="parametre.png")
etiket_resim = Label(pencere, image=resim).pack(pady=20)
pencere.mainloop()
Teşekkür ederim. Kodu Söylediğiniz şekilde düzeltince düzgün çalıştı.