Это мой ОЧЕНЬ первый пост, так что простите за новизну. Я пытаюсь сделать GUI игры в кости (2 х шестисторонних). Logi c случайных бросков работает нормально, чтобы утешить. Также в консоли я вижу, что число d ie соответствует правильному файлу изображения, но у меня возникают проблемы при замене изображений меток tkinter на новые соответствующие изображения в каждом рулоне после начального запуска.
При запуске корректно отображаются оба изображения d ie, но когда я нажимаю кнопку «Свернуть», оба изображения с первого рулона просто исчезают, а новые изображения рулона не отображаются. Он просто закрывает пространство, ранее занимаемое изображениями первого рулона.
Если присмотреться, я вижу правильные изображения d ie "fla sh" на экране в их правильных положениях, чтобы они сразу исчезали при каждом нажатии кнопки "Roll".
Я не могу прикрепить шесть изображений, которые я использую для возможных бросков d ie (недостаток кредитов), но дело в том, чтобы продемонстрировать способность переключаться с любого изображения на любое другое, так что не стесняйтесь попробовать с любыми 6 гифками.
Я видел похожие вопросы на этом сайте, но когда я попробовал предложенный код или предложенную комбинацию кода, у меня возникла та же проблема, что и сейчас.
Я использую python 3.8.1 на win10pro. Любая помощь будет оценена! Вот мой код:
from tkinter import *
import random
window = Tk()
window.title( 'Roller' )
window.resizable( 0, 0 )
def get_roll():
min=1
max=6
die1 = random.randint(min,max)
die2 = random.randint(min,max)
if die1 == die2:
print(die1,'+',die2,'=',die1+die2, '*** You rolled doubles ***')
else:
print(die1,'+',die2,'=',die1+die2)
return die1,die2
def get_image(index):
images = []
images.append('die_01_42158_sm.gif')
images.append('die_02_42159_sm.gif')
images.append('die_03_42160_sm.gif')
images.append('die_04_42161_sm.gif')
images.append('die_05_42162_sm.gif')
images.append('die_06_42164_sm.gif')
return images[index-1]
def do_roll():
global window
die1, die2 = get_roll()
imgfile1 = get_image(die1)
imgfile2 = get_image(die2)
print(imgfile1)
img1 = PhotoImage( file = imgfile1 )
#img1 = img1.subsample(20)
imgLbl1.configure( image = img1 )
#imgLbl1 = Label( window, image = img1 )
#imgLbl1.grid(row = 0, column = 0)
window.update_idletasks()
print(imgfile2)
img2 = PhotoImage( file = imgfile2 )
#img2 = img2.subsample(20)
imgLbl2.configure( image = img2 )
#imgLbl2 = Label( window, image = img2 )
#imgLbl2.grid(row = 0, column = 1)
window.update_idletasks()
die1, die2 = get_roll()
imgfile1 = get_image(die1)
imgfile2 = get_image(die2)
img1 = PhotoImage( file = imgfile1 )
#img1 = img1.subsample(20)
imgLbl1 = Label( window, image = img1 )
imgLbl1.grid( row = 0, column = 0 )
img2 = PhotoImage( file = imgfile2 )
#img2 = img2.subsample(20)
imgLbl2 = Label( window, image = img2 )
imgLbl2.grid( row = 0, column = 1 )
rollBtn = Button( window )
rollBtn.grid( row = 0, column = 2 )
rollBtn.configure( text = 'Roll' )
rollBtn.configure( command = do_roll )
quitBtn = Button( window )
quitBtn.grid( row = 0, column = 3 )
quitBtn.configure( text = 'Quit' )
quitBtn.configure( command = window.destroy )
#do_roll()
window.mainloop()