Tak więc mam 3 okna dla mojego projektu i chcę, aby te 3 okna miały każdy obraz tła, ale nie wiem jak, zastanawiam się nad tym od wielu godzin. Oto mój kod ...

def Registration():

rootA = Toplevel() # This creates the window, just a blank one.
    rootA.geometry("1366x768")
    rootA.configure(background="black")
    rootA.title('Registation') # This renames the title of said window to 'signup'
    rootA.attributes('-fullscreen', True)

    image3=Image.open('2.gif')
    image4=ImageTk.PhotoImage(image3)
    image3_label=Label(borderwidth=0)
    image3_label.grid(column=0,row=0)

    registrationLabel = Label(rootA, image=image4)
    registrationLabel.place(x=0,y=0)

    fnameEntry= Entry(rootA)
    fnameEntry.place(x=680,y=350,width=200)

def Login():
    global nameEL
    global pwordEL
    global rootA

    rootA = Tk() 
    rootA.geometry("1366x768")
    rootA.configure(background="black")
    rootA.attributes('-fullscreen', True)
    rootA.title('Food Delivery') # This makes the window title 'login'

    image2=Image.open('1.gif')
    image1=ImageTk.PhotoImage(image2)
    image2_label=Label(borderwidth=0)
    image2_label.grid(column=0,row=0)

    titleLabel = Label(rootA, image=image1)
    titleLabel.place(x=0,y=0)

# ====== i ta część jest teraz moim problemem.

def CheckLogin():
    with open(creds) as f:
        data = f.readlines() 
        username = data[0].rstrip()
        password = data[1].rstrip()

    if nameEL.get() == username and pwordEL.get() == password: 
        #r = Tk() # Opens new window
        #r.title('Food Delivery')
        #r.geometry('100x80')
        #r.title("Food Delivery")
        #r.configure(background='pink')

I mean, this part I just label it Tk cos I don't know what to do.

        rootA = Tk() 
        rootA.geometry("1366x768")
        rootA.configure(background="black")
        rootA.attributes('-fullscreen', True)
        rootA.title('Food Delivery') 

        image2=Image.open('4.gif')
        image1=ImageTk.PhotoImage(image2)
        image2_label=Label(borderwidth=0)
        image2_label.grid(column=0,row=0)

# #Nie mam pojęcia, jaki będzie następny krok ani jaki jest właściwy kod. Z góry dziękuję

0
rgsummer 20 listopad 2019, 16:38

1 odpowiedź

Powinieneś mieć tylko jedną instancję Tk naraz. Jeśli potrzebujesz dodatkowych okien, utwórz wystąpienia Toplevel.

Każda instancja Tk jest odizolowana od innych instancji. Zmienne, widżety i obrazy utworzone w jednym nie są widoczne w innych.

0
Bryan Oakley 20 listopad 2019, 17:29
Czy w moim trzecim oknie mogę ponownie użyć Toplevel?
 – 
rgsummer
20 listopad 2019, 17:42
Próbowałem ponownie najwyższego poziomu dla mojego trzeciego okna i działa i nie ma błędu, ale obraz nie jest widoczny. Jak mogę wyświetlić obraz? Dzięki wielkie!
 – 
rgsummer
20 listopad 2019, 17:49