我有一個while語句裏面的聲明應該在畫布上畫一個圖像,但它不會發生,我不知道爲什麼,因爲它不顯示任何錯誤。Python - 圖像沒有畫在畫布上
def buttonclick_gamescreen(event):
global scorecounter
global pressed
global randomimage
global images
pressed = ""
if event.x >853 and event.x <957 and event.y > 8 and event.y < 56 : pressed = 7
if event.x >666 and event.x <947 and event.y > 491 and event.y < 534 : pressed = 8
while pressed == 8 :
entryx = e1.get()
entryy = e2.get()
answerx = answerlistx[randomimage]
answery = answerlisty[randomimage]
print("The answer to X is", answerx, "You entered", entryx,"The answer to Y is", answery, "You entered ", entryy)
if entryx == answerx and entryy == answery:
print("correct")
canvas.delete(images)
randomimage = random.randrange(0,49+1)
scorecounter = scorecounter + 1
print("You score is now", scorecounter, "New random number is", randomimage)
game = PhotoImage(file=imagelist[randomimage])
images = canvas.create_image(30, 65, image = game, anchor = NW)
e1.delete(0, END)
e2.delete(0, END)
pressed = ''
else:
print("incorrect")
e1.delete(0, END)
e2.delete(0, END)
pressed = ''
線,因爲它在其他情況下,工作對我來說images = canvas.create_image(30, 65, image = game, anchor = NW)
應該工作。
下面是代碼的其餘部分的鏈接,因爲我不想讓這個問題太長而且雜亂,它顯示了畫布的繪製位置。 http://pastebin.com/RxmPDUAD 從我現在的理解,我將不得不創建一個類,並從那裏調用函數來工作? 編輯:仍然有麻煩,因爲我試過使用全局變量和類沒有運氣。
這是不是一個隨機數的問題,因爲我打印它的圖像應該打印的行之前,只是因爲它沒有工作,但它確實如此。我究竟做錯了什麼?
你進入主循環?除非你這樣做,否則任何事情都不會發生。所有任務基本上排隊,主循環將運行任務隊列並執行任何操作,處理事件等。 – GP89
我不完全確定這意味着什麼,但我會猜測它不是,所以我會不得不去看看,謝謝你的評論。 – ThatsNotMyName
我的意思是你在哪裏調用'canvas.mainloop()'? (您沒有提供您提供的代碼,但我認爲這不是所有的代碼,因爲那裏有未定義的符號) – GP89