Изображения кнопок TKinter не отображаются - PullRequest
0 голосов
/ 07 декабря 2018

Я хотел, чтобы мое приложение выглядело более красивым, и оно сложнее, чем я!Теперь у меня было приложение с двумя кнопками и надписью даты и времени сверху.Кнопки просто с текстом, но я хочу использовать картинки на них.Теперь это мой код:

def showMainMenu():
    global cardNumber, allowToGPIO
    cardNumber = "" #Reset cardNumber global value
    allowToGPIO = True
    clear()
    showNewTime()
    watchDog.awake()
    GuestTestButton = Button(canvas, text="GUEST TEST", width=buttonwidth, height=buttonheight, compound = TKinter.CENTER, command = guestTest)
    GuestTestButton.config(font=("Mojave-Regular.ttf", 24))
    #GuestTestButton.pack()
    GuestTestButton.place(x=90, y=100)
    AddEmployeeButton = Button(canvas, text="ADD NEW USER", width=buttonwidth, height=buttonheight, compound = TKinter.CENTER, command = addEmployee)
    AddEmployeeButton.config(font=("Mojave-Regular.ttf", 24))
    #AddEmployeeButton.pack()
    AddEmployeeButton.place(x=90, y=270)

И пока это работает.Но когда я попытался сделать их более красочными (просто используйте изображение вместо текста), кнопка появляется без чего-либо на нем.Можно ли вообще сделать такие вещи в TKinter?Все, что я делаю, на холсте:

app = TKinter.Tk()
canvas = TKinter.Canvas()

Я пытался сделать это так:

GuestImage = TKinter.PhotoImage(file="guest.gif")
GuestTestButton = Button(canvas, text="GUEST TEST", width=buttonwidth, height=buttonheight, compound = TKinter.CENTER, command = guestTest)
GuestTestButton.config(image=GuestImage, font=("Mojave-Regular.ttf", 24))
GuestTestButton.place(x=90, y=100)

Но, как я уже сказал, это не работает должным образом: D Заранее спасибо за любую помощь!

1 Ответ

0 голосов
/ 07 декабря 2018

Я получил это сейчас, мои изображения отображаются, но они исчезают через миллисекунды, теперь я сделал GuestImage и AddEmployeeImage в качестве глобальных переменных, и это работает отлично!

...