Tam Ekran Arkaplan

Merhabalar,

Ben üniversite 2.sınıf öğrencisiyim. Python’da bir program yapıyoruz ben de yemek sistemi yapacağım. Kullanıcı sipariş verecek, admin panelinden admin menü ekleyecek gibi bir sistem. Arkaplan fotoğrafı var elimde fakat, 1. tam ekran yapamıyorum. 2.si sipariş ver diye butona bastığımda toplevel oluşturuyorum fakat toplevel’de o arkaplan görünmüyor. Kodum bu. Teşekkürler

Edit = Ekranın görüntüsü böyle


my_image= ImageTk.PhotoImage(Image.open(“bgimage.jpg”))
arkaplan = Label(kullaniciEkran, image=my_image)
arkaplan.place(x=0,y=0,width=800,height=600)

Merhaba, rica etsem bütün kodlarınızı atar mısınız?

Bir de buraya göre atın lütfen:

import tkinter
from tkinter import*
from tkinter import messagebox
import PIL
from PIL import ImageTk
from PIL import Image

kullaniciEkran = Tk()
kullaniciEkran.title("Kullanıcı Arayüzü")
kullaniciEkran.geometry("800x600+0+0")
kullaniciEkran.resizable(FALSE,FALSE)

bilgilendirme = messagebox.showinfo("Bilgilendirme", "Sisteme Giriş Başarılı!")
my_image= ImageTk.PhotoImage(Image.open("bgimage.jpg"))
arkaplan = Label(kullaniciEkran, image=my_image)
arkaplan.place(x=0,y=0,width=800,height=600)

bilgimesaji=Label(kullaniciEkran,text="Catering  Sistemimize Hoş Geldiniz!")
bilgimesaji.pack(side=TOP)


def siparisVer():
    siparisverme = Toplevel(kullaniciEkran)
    siparisverme.geometry("800x600")
    siparisverme.resizable(FALSE,FALSE)


def siparislerim():
    siparislerim = Toplevel(kullaniciEkran)
    siparislerim.geometry("800x600")
    siparislerim.resizable(FALSE,FALSE)


siparisVer=Button(kullaniciEkran,compound=TOP, text="Sipariş Ver", command=siparisVer)
siparisVer.place(x=50,y=50,height=50,width=100)
siparislerim = Button(kullaniciEkran, text="Siparişlerim", compound=TOP , command=siparislerim)
siparislerim.place(x=150,y=50,height=50,width=100)


sistemeGirilenKisi=Label(kullaniciEkran,text="Sisteme Kayıtlı Kişi Sayısı : ")
sistemeGirilenKisi.place(x=50,y=250)




kullaniciEkran.mainloop()

Mod’um kodları paylaştım

import tkinter as tk

ekran = tk.Tk()
ekran.attributes("-fullscreen",True)

ekran.mainloop()

Bunu bi dene

İstediğim ekranın tam ekran olması değil, Arka planın ekrana tam ekran olarak yansıması. Kodu çalıştırdığımda yarım kalıyor. Ekran görüntüsünü ilk mesaja ekledim

Fotoğrafın y eksenini genişletmek mi istiyorsunuz yoksa fotoğrafı zoomlamak mı?

y ekseninde genişletmek sanırım. çünkü zoomlayınca anladığım kadarıyla fotoğraf da tam ekran olmuyor.Benim istediğim birinci mesajda editledim, o fotoğrafın o ekrana tam olması.

Toplevel widgetleri oluşurken bir tane Label tanımlayıp arkaplanın toplevel için de geçerli olmasını sağlayabilirsiniz.

Kodlarınızı şöyle düzenledim, bir bakın isterseniz.

import tkinter
from tkinter import*
from tkinter import messagebox
import PIL
from PIL import ImageTk
from PIL import Image

kullaniciEkran = Tk()
kullaniciEkran.title("Kullanıcı Arayüzü")
genislik = kullaniciEkran.winfo_screenwidth()
yukseklik = kullaniciEkran.winfo_screenheight()
size = f"{genislik}x{yukseklik}"
kullaniciEkran.geometry(size)
kullaniciEkran.resizable(FALSE,FALSE)

bilgilendirme = messagebox.showinfo("Bilgilendirme", "Sisteme Giriş Başarılı!")
my_image= ImageTk.PhotoImage(Image.open("bgimage.jpg"), size=size)
arkaplan = Label(kullaniciEkran, image=my_image)
arkaplan.place(x=0,y=0,width=genislik,height=yukseklik)

bilgimesaji=Label(kullaniciEkran,text="Catering  Sistemimize Hoş Geldiniz!")
bilgimesaji.pack(side=TOP)


def siparisVer():
    siparisverme = Toplevel(kullaniciEkran)
    siparisverme.geometry(size)
    siparisverme.resizable(FALSE,FALSE)
    frame = Label(master=siparisverme, image=my_image)
    frame.pack(expand=True, fill="both")


def siparislerim():
    siparislerim = Toplevel(kullaniciEkran)
    siparislerim.geometry(size)
    siparislerim.resizable(FALSE,FALSE)
    frame = Label(master=siparislerim, image=my_image)
    frame.pack(expand=True, fill="both")


siparisVer=Button(kullaniciEkran,compound=TOP, text="Sipariş Ver", command=siparisVer)
siparisVer.place(x=50,y=50,height=50,width=100)
siparislerim = Button(kullaniciEkran, text="Siparişlerim", compound=TOP , command=siparislerim)
siparislerim.place(x=150,y=50,height=50,width=100)


sistemeGirilenKisi=Label(kullaniciEkran,text="Sisteme Kayıtlı Kişi Sayısı : ")
sistemeGirilenKisi.place(x=50,y=250)

kullaniciEkran.mainloop()

Öncelikle çok teşekkür ederim.
1.w.info_screenwidth() ve height kodu ne işe yaramakta?
2.siparisVer() de ki expand True ve fill both ne anlama geliyor?
3.siparisVer() içerisinde oluşturduğunuz Label’de Master ne anlama geliyor
4.sü ben uygulamanın tam ekran olmasını değil, fotoğrafın benim vermiş olduğum 800x600’ün tamamında olmasını istiyorum. Yani arka plan komple o fotoğraf olmalı fakat uygulama boyutu 800x600 kalmalı

  1. Bunlar (winfo_screenwidth ve winfo_screenheight) oluşacak olan ekranın kullanılan bilgisayarın ekran boyutlarına göre tam ekran haline gelmesini sağlar.
  2. expand=True genişlet anlamına gelirken fill="both" hem x hem de y eksenini doldur anlamına gelir.
  3. master bir widgetin ebeveyn widgetidir, yani aslında siz farkında olmadan master parametresini kullanıyorsunuz, ancak kullandığınız parametrenin isminin master olduğunu bilmiyordunuz. Bu parametre Label veya herhangi bir widget oluşturulurken kullandığınız ilk parametre aslında. arkaplan = Label(kullaniciEkran, image=my_image) ifadesindeki kullaniciEkran, master parametresine atadığınız değerdir aslında.
  4. Resmi ekrana uydurmak için şöyle yapın o zaman:
my_image = ImageTk.PhotoImage(Image.open("bgimage.jpg"), size="800x600")

Bütün açıklamalar için teşekkür ederim.
4.de vermiş olduğunuz kodu yazdığımda değişen ne yazık ki bir şey olmuyor :frowning:

Edit= Bir tane sitede fotoğraf yeniden boyutlandırılıyor. Boyutlandırmayı 800x600 yaptım onu koydum yine olmadı

Tamam, anladım, şöyle yapalım o zaman:

my_image değişkenini tanımlamadan önce aşağıda gösterilen kodlardaki ilk 3 satırı yazın, sonra da my_image değişkenini aşağıdaki gibi yazın.

image = Image.open("bgimage.jpg")
image.thumbnail((800, 600))
image.save("resized_bgimage.jpg")
my_image = ImageTk.PhotoImage(file="resized_bgimage.jpg")

Çok garip olmuyor :smiley:

Aşağıdaki kodları çalıştırın bir:

import tkinter
from tkinter import*
from tkinter import messagebox
import PIL
from PIL import ImageTk
from PIL import Image

kullaniciEkran = Tk()
kullaniciEkran.title("Kullanıcı Arayüzü")
kullaniciEkran.geometry("800x600+0+0")
kullaniciEkran.resizable(FALSE,FALSE)

bilgilendirme = messagebox.showinfo("Bilgilendirme", "Sisteme Giriş Başarılı!")
image = Image.open("bgimage.jpg")
image.thumbnail((850, 600))
image.save("resized_bgimage.jpg")
my_image = ImageTk.PhotoImage(file="resized_bgimage.jpg")
arkaplan = Label(kullaniciEkran, image=my_image)
arkaplan.place(x=0,y=0,width=800,height=600)

bilgimesaji=Label(kullaniciEkran,text="Catering  Sistemimize Hoş Geldiniz!")
bilgimesaji.pack(side=TOP)


def siparisVer():
    siparisverme = Toplevel(kullaniciEkran)
    siparisverme.geometry("800x600")
    siparisverme.resizable(FALSE,FALSE)


def siparislerim():
    siparislerim = Toplevel(kullaniciEkran)
    siparislerim.geometry("800x600")
    siparislerim.resizable(FALSE,FALSE)


siparisVer=Button(kullaniciEkran,compound=TOP, text="Sipariş Ver", command=siparisVer)
siparisVer.place(x=50,y=50,height=50,width=100)
siparislerim = Button(kullaniciEkran, text="Siparişlerim", compound=TOP , command=siparislerim)
siparislerim.place(x=150,y=50,height=50,width=100)


sistemeGirilenKisi=Label(kullaniciEkran,text="Sisteme Kayıtlı Kişi Sayısı : ")
sistemeGirilenKisi.place(x=50,y=250)




kullaniciEkran.mainloop()

Yok hocam aynı yere koydum ben de olmuyor :frowning:

Elimden geleni yaptım kardeş, bende resim ekrana tam bir şekilde oturdu, biraz kurcalayın isterseniz. Veya belki başka bir arkadaş gelir bir öneride bulunur. Windows mu kullanıyorsunuz bu arada? Ubuntu’da denedim ben. Belki Windows’da biraz boşluklar kalıyor olabilir, image.thumbnail((850, 600)) ifadesindeki değerleri biraz değiştirmeyi deneyin, illa ki bir değişiklik olması lazım.

Windows’u açtım ve gördüm ki, image.thumbnail((850, 600)) ayarlarıyla resim ekranın x eksenine tam oturmamış.


O halde 600’ı biraz yükseltmemiz lazım. Resim boyutunu image.thumbnail((850, 670)) ifadesiyle biraz değiştirince, bu sefer resim ekrana tam oturdu. Sizin de yapmanız gereken biraz kurcalamaktı aslında.

Hatta, sizinle paylaştığım, thumbnail fonksiyonuna gerek bile yoktu aslında. Yani size parametresi de aslında aynı işi yapar. Tek farkı burada yeni bir resim oluşturmuyoruz. Mevcut resmin boyutlarını değiştiriyoruz. Hangi boyutun ekrana tam uyacağını deneye deneye bulursunuz.

my_image = ImageTk.PhotoImage(file="bgimage.jpg", size=(850, 670))

Dedim ya, python’da yeni yeni bir şeyler yapıyorum. İlk projem gibi düşün, sistemimiz malum o yüzden kendim kurcalayarak forumlara yaza yaza öğreniyorum. Çok teşekkür ederim emeğin için.

Edit= fakat dediğinizi yaptığımda bende hala aynı görünüyor. Evet windows kullanıyorum