我正在使用Zelle Graphics library,我無法替換圖形對象(在這種情況下,它恰好是文本對象)。Zelle圖形界面問題
下面的代碼:
from Graphics import *
winName = "Window"
win = Window(winName,600,500)
win.setBackground(Color('silver'))
title = Text((300,20),"Zack's Flash Card Maker")
title.draw(win)
p1 = Rectangle((50, 100),(550,400))
p1.setFill(Color("black"))
p1.draw(win)
class FlashCard:
def __init__(self):
self.commands = {'addQuestion':self.addQuestion,'startGame':self.startGame}
self.stack = []
self.questions = {}
self.questionAnswered = False
self.questionsCorrect = 0
self.questionsIncorrect = 0
def addQuestion(self):
question = ' '.join(self.stack)
self.stack = []
answer = input(question)
self.questions[question] = answer
def startGame(self):
for question in self.questions:
if(self.questionAnswered == False):
answer=input(question)
questionText = Text((300,150),question)
questionText.setFill(Color("white"))
questionText.draw(win)
if(answer == self.questions[question]):
questionAnswer = Text((300,200),answer + " is correct!")
questionAnswer.setFill(Color("green"))
questionAnswer.draw(win)
self.questionsCorrect = self.questionsCorrect + 1
continue
else:
questionAnswer = Text((300,200),answer + " is incorrect. Study this one.")
questionAnswer.setFill(Color("red"))
questionAnswer.draw(win)
self.questionsIncorrect = self.questionsIncorrect + 1
continue
def interpret(self,expression):
for token in expression.split():
if token in self.commands:
operator = self.commands[token]
operator()
else:
self.stack.append(token)
i = FlashCard()
i.interpret('What is your dog\'s name? addQuestion')
i.interpret('What is your favorite thing to do? addQuestion')
i.interpret('startGame')
這基本上是我在做一個小型閃存卡程序。它在底部使用解釋命令並根據FlashCard類中的字典執行它們。它基本上起作用:它能夠正確的文本對象。但是,文本開始重疊其他文本對象,因爲它會重新繪製。我嘗試過移動.draw函數,但它要麼完全不顯示,要麼重疊。
任何人有任何建議嗎?我希望文字替換每個新的閃卡問題。
謝謝!
嗯。我覺得不應該工作,但不要在下一次迭代之前取消它,它只是從不出現。 :\ –
該程序應該如何流動?除了輸入語句之外,程序無法停止並顯示某些內容。在屏幕上繪製問題之前,您需要輸入,所以我認爲它只是從draw()到undraw()運行代碼太快而無法注意屏幕。如果你在input()語句之前放置問題繪圖代碼,這有幫助嗎?我建議導入time.sleep()並將其用於答案部分。 (即,在你的questionAnswer.draw()和continue語句之間插入time.sleep(2)之類的東西)。 –