Tkinter de aynı pencerede buton ve resim oluşturmak mümkün mü

tkinter de resim eklediğim pencereye buton da ekleyebilirmiyim yani resmin altında başka bir buton yapılandırabilirmiyim

Evet,yapabilirsiniz.Resim kodlarının altına buton kodlarını yazın.Ardından pack, grid veya place ile yerleştirin.Tercih size kalmış :slight_smile:

kodlar tamam fakat birleştirmesi nasıl olcak tam anlamadım iki farklı pencerede açılıyor pack veya grid ile yerleştirme nasıl olcak anlatabilirmisiniz

Resim dosyalarıyla çalışmak için önce PIL kütüphanesini yüklemenizi tavsiye ederim.

pip install Pillow

Kodlarda kullandığım resim dosyası da şu:
image

Aşağıda da kodları görüyorsunuz.

import tkinter as tk

# Pillow kütüphanesinden Image ve ImageTk modüllerini
# programa aktarıyoruz.
from PIL import Image, ImageTk

root = tk.Tk()

# Image modülünde yer alan open fonksiyonuna 
# açmak istediğimiz resmi yazıyoruz.
image = Image.open("image.jpg")

# image.size resmin genişlik ve yükseklik değerlerini
# içeren bir tuple verisi döndürür.
# w -> width'in kısaltılmışı
# h -> height'in kısaltılmışı
w, h = image.size

# canvas'ın yükseklik ve genişlik değerini bu resmin
# boyutları olarak ayarlıyorum.
canvas = tk.Canvas(master=root, width=w, height=h)
canvas.pack()

# Resmi tkinter'de görüntülemek için onu PhotoImage 
# nesnesine dönüştürmemiz gerekiyor.
photo_image = ImageTk.PhotoImage(image)

# Resmi 0, 0 poziyonuna, kuzeybatıya yaslanmış bir şekilde
# ekrana yerleştiriyorum.
canvas.create_image(0, 0, image=photo_image, anchor="nw")

# Ebeveyn widgeti canvas olan bir tane çerçeve tanımlıyorum,
frame = tk.Frame(master=canvas)
# frame'i pack, grid veya place ile ekrana yerleştirmiyorum.

# Bu frame widgetine istediğimiz kadar widget ekleyebiliriz.
# Bu örnek için sadece tek bir button ekliyorum.
button = tk.Button(master=frame, text="hello")
button.pack()

# Frame widgetini resmin tam ortasına yerleştirmek için
# resmin genişlik ve yükseklik değerlerinin yarısını giriyorum.
# anchor da merkez olarak beliriyorum.
canvas.create_window(w // 2, h // 2, window=frame, anchor="center")

root.mainloop()

Aşağıdaki de ekran görüntüsü:

Ekran görüntüsü 2020-11-20 23-09-57

1 Beğeni

eyvallah ustam çok sağol yardımların için

Rica ederim kolay gelsin.