Python Kolej Yapımı

Python a yeni başladım.
kullanılarak tanımladığımız 5-6 **sağlayacak butonlar olan bir arayüz yapmam gerekiyor.
Yardımcı olabilirseniz minnettar olurum.

Merhaba, madem Python’a yeni başladınız. O zaman size şöyle yardımcı olmaya çalışayım:

  1. Size Python için Türkçe bir kaynak önerebilirim. Daha ileri seviyedeki konulara bu kaynağı okumayı bitirdikten sonra geçmenizi öneririm.

https://belgeler.yazbel.com/python-istihza.pdf

  1. Python’da bir temel oluşturduktan sonra Tkinter için aşağıdaki kaynakları inceleyebilirsiniz:

http://effbot.org/tkinterbook/
http://infohost.nmt.edu/tcc/help/pubs/tkinter/tkinter.pdf

  1. Ve son olarak PIL için de aşağıdaki dökümanı inceleyebilirsiniz.

https://pillow.readthedocs.io/en/5.1.x/

1 Beğeni

Teşekkürler kaynaklar için.
Bu kaynaklara benzer kaynakları defalarca okudum :slight_smile:
Belirttiğim gibi arayüzde tanımladığım fotoğraflar arasında geçiş yapamıyorum.
Bunun için nasıl bir yol izleyebilirim?

Peki o zaman aşağıdaki kodları bir inceleyin isterseniz:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

try:
    import Tkinter as tk
except ImportError:
    import tkinter as tk
from PIL import ImageTk

# Ana penceremizi oluşturalım.
root = tk.Tk()

# Diyelim bu Python betiğini çalıştırdığınız dizinde
# aşağıdaki gibi resim dosyalarınız var.
# NOT: Bu dosyalardan fazla sayıda olursa ve burada tanımlamak
# istemezseniz os modülüyle resim dosyalarının bulunduğu
# klasörü tanıtıp, resimleri oradan çekebilirsiniz.
dosyalar = "1.jpg", "2.jpg", "3.jpg"

# Resim değiştirme işlemini gerçekleştirecek düğmeyi oluşturalım.
button = tk.Button(master=root, text="Resim Değiştir")
button.pack()

# Belirttiğimiz dizindeki bütün resim dosyalarını ImageTk.PhotoImage()
# fonksiyonunun file parametresine atayalım ve bunları resim_listesi isminde
# bir tane listenin içine dahil edelim.
resim_listesi = [ImageTk.PhotoImage(file=i) for i in dosyalar]

# Resimlerin görüntüleneceği widget tk.Label() olsun. Bu widget de label
# isimli bir değişkene atansın. Ancak şimdi label isimli değişkenin
# değerini None olarak belirleyelim.
label = None

# Resim listesindeki resimleri liste sırasına göre taramak için say isimli
# bir değişken oluşturalım.
say = 0


# Şimdi de tanımladığımız düğmeye her basışımızda gerçekleştirilecek
# işlemleri tanımlayalım.
def resimleri_goster():
    # Global alandaki label ve say değişkenlerini fonksiyonun içine çekelim.
    global label, say
    # Düğmeye her tıkladığımızda, eğer label değişkeni None değilse,
    # label değişkeni yok edilip tekrar oluşturulsun.
    if label is not None:
        label.destroy()
    try:
        # Yeni label değişkeninin image isimli argümanını burada tanımlayalım.
        label = tk.Label(master=root, image=resim_listesi[say])
        label.pack()
        # Her düğmeye basıldığında global sayımız 1 artsın böylece resim listesinin
        # bütün resimlerini görüntüleyebiliriz.
        say += 1
    except IndexError:
        # Liste içindeki son dizine geldiğimiz halde düğmeye tıklamaya
        # devam edersek bir IndexError hatası yükseltilir.
        # Dolayısıyla say = 0 yaparak, tekrar baştaki resmin görüntülenmesini
        # sağlayabiliriz. Veya buraya bir uyarı mesajı da eklenebilir.
        say = 0


# Düğmemizin komut kısmına fonksiyonu atayalım.
button.configure(command=resimleri_goster)
# Ve ana pencereyi döngüye alalım.
root.mainloop()
1 Beğeni

Çok teşekkür ederim :blush:

Hocam son bir sorum daha var.
İki buton yapmak istiyorum.
Önceki Foto ve Sonraki foto şeklinde
Bunun için eklemeyi nasıl yapmam gerekiyor.

Bence biraz uğraşın, sizinle paylaştığım kodların istediğiniz ozelliği nasıl ekleyeceğiniz hakkinda ipucu vermesi lazim. Ornegin sonraki resim icin say degiskenini 1 arttiriyorduk. O halde onceki resim icin say degiskeninin degerini 1 azaltmayi deneyebilirsiniz. Siz bir ugrasin. Yapamazsaniz yardimci olurum.

Tamamdır, yaptım, oldu.
Teşekkürler yardımınız için :slight_smile: