добавить фотографию на кнопку

#python #tkinter

Вопрос:

Я создал окно tkinter с кнопками, и я смог разместить изображения на кнопках.

Когда кнопка нажата, я настраиваю ее на открытие другого окна, в которое я также помещаю кнопки, но не могу поместить на них картинку.

Когда я добавляю картинку, кнопки исчезают.

Код:

 from tkinter import *

root = Tk()
root.title('GARBIL.TK')

p1 = PhotoImage(file='03.png')
root.iconphoto(False, p1)

canvas_width = 1900
canvas_height = 1080

w = Canvas(root, width=canvas_width, height=canvas_height)
w.pack()

serveron = PhotoImage(file="01.PNG")
serveroff = PhotoImage(file="02.PNG")

def SGX():

    SGX = Tk()
    SGX.title('server map')
    SGX.geometry("900x700")
    SGX21 = Button(SGX, text='SGX.21', bg='#008080', fg='#ffffff', compound=BOTTOM)
    SGX21.place(x=200, y=250)

SGXon = Button(root, text=' SGX ', image=serveron, command=SGX, compound=BOTTOM)
SGXon.place(x=1080, y=100)

mainloop()
 

Ответ №1:

Вам нужно заменить SGX = Tk() на SGX = Toplevel() . Tk обычно представляет собой главное окно приложения. Для подокна вам нужно использовать Toplevel вместо этого.

 SGX = Toplevel()
 

Таким образом, ваш SGX должен выглядеть следующим образом:

 def SGX():
    SGX = Toplevel()
    SGX.title('server map')
    SGX.geometry("900x700")
    SGX21 = Button(SGX, text='SGX.21', image=p1, bg='#008080', fg='#ffffff', compound=BOTTOM)
    SGX21.place(x=200, y=250)
 

введите описание изображения здесь

Комментарии:

1. его работа, спасибо 🙂

2. Удачи :большой палец вверх