0
我的問題是,如果我啓動它的計數器是不可見的,如果我關閉PROGRAMM它給了我下面的錯誤:倒計時是不可見的,我有一個錯誤
File "C:\Users\****\AppData\Local\Programs\Python\Python36-32
\lib\tkinter\__init__.py", line 1176, in update_idletasks
self.tk.call('update', 'idletasks')
_tkinter.TclError: can't invoke "update" command: application has been destroyed
這裏我的代碼:
from tkinter import *
import tkinter.messagebox
fenster = Tk()
tkinter.messagebox.showinfo("", "Willkommen bei wer wird Millionär")#Welcome to who is Millionaire
answer = tkinter.messagebox.askquestion("", "Möchtest du im Schweren Modus spielen? Der schwere modus bedeutet das du nur 2 Joker hast!")#Do you want to play in Hard mode?if you play in hardmode you only have 2 joker
menu = Menu(fenster)
fenster.config(menu=menu)#window
frage = Label()#question
frage.grid(row=0, column=1)
ausgabe = Label()#output
ausgabe.grid(row=4, column=1)#output
jokerfrage = None
zähler = Label(fg="black")
zähler.grid(row=0, column=0)
x = 0
v = IntVar()
def fiftyfifty():
subMenu.delete("50/50", index2=None)#Fiftiy fifty Joker
def fiftyfifty1():
subMenu.delete("1.50/50", index2=None)#Fiftiy fifty Joker
def fiftyfifty2():
subMenu.delete("2.50/50", index2=None)#Fiftiy fifty Joker
def publikum():
print("Publikum ist nicht anwesend tut mir leid!")#Sorry there is no people that can help you
def jokerfragen():
global jokerfrage
jokerfrage = tkinter.messagebox.askquestion("", "Hör auf nachzudenken und benutz lieber einen Joker!")#Stop thinking use a joker!
def antwortr():
frage.configure(text="Glückwunsch deine antwort war richtig")#Greetings youre answers whas right
ausgabe.configure(text="50")
zähler.after(29000, jokerfragen)#wich joker he wants
def antwortf():
frage.configure(text="Deine antwort wahr falsch damit bist du ausgeschieden!")#Sorry youre answer whas wrong you lost the game
def vändern1():
v = 1
if v == 1:
knopf1 = Button(text="Einlocken", command=antwortr)#Lock in
knopf1.grid(row=3, column=1)
def vändern2():
v = 2
if v == 2:
knopf1 = Button(text="Einlocken",command=antwortf)#Lock in
knopf1.grid(row=3, column=1)
if answer == "no":
subMenu = Menu(menu)
menu.add_cascade(label="Joker", menu=subMenu)
subMenu.add_command(label="1.50/50", command=fiftyfifty1)#2 wrong question go away
subMenu.add_command(label="2.50/50", command=fiftyfifty2)#2 wrong question go away
subMenu.add_separator()
subMenu.add_command(label="1.Publikum Befragen", command=publikum)#ask other people joker
subMenu.add_command(label="2.Publikum Befragen", command=publikum)#ask other people joker
x = x + 1
if answer == "yes":
subMenu = Menu(menu)
menu.add_cascade(label="Joker", menu=subMenu)
subMenu.add_command(label="50/50", command=fiftyfifty)
subMenu.add_separator()
subMenu.add_command(label="Publikum Befragen", command=publikum)#ask other people joker
x = x + 1
# Frage 1
if x == 1:
frage.configure(text="Wie heist das heilige Buch der Christen?")#What is the Holy book of the Christians
Radiobutton(fenster, text="Bibel", variable=v, value=1, command=vändern1).grid(row=1, column=0)
Radiobutton(fenster, text="Thora", variable=v, value=2, command=vändern2).grid(row=1, column=1)
Radiobutton(fenster, text="Koran", variable=v, value=3, command=vändern2).grid(row=2, column=0)
Radiobutton(fenster, text="Tipitaka", variable=v, value=4, command=vändern2).grid(row=2, column=1)
def counter_label():
while True: # keeps looping forever
for counter in range(30, -1, -1): # loops backwards from 30 up to and including 0
zähler.config(text = str(counter))
zähler.after(1000, count)
sleep(1000)
while jokerfrage is None:
fenster.mainloop(10)
fenster.update()
fenster.update_idletasks()
if jokerfrage == "yes":
wjokerfrage = tkinter.messagebox.askquestion("", "50/50 ist Ja Publikum Befragen ist nein")#wich Joker you want 50/50 is yes ask other poeple joker is no
if jokerfrage == "no":
tkinter.messagebox.showinfo("", "Ok ich werde dir weitere 30 sekunden zum nackdenken geben")#ok i'll give you 30 more seconds to think
mainloop()
所以這是我的整個節目,我是新來的Python,這是我校第一個「大」項目,但我有我不能沒有你們正確的許多問題。
@Gooz這就是說,新的 – Florian
睡眠(1000)沒有做任何事情,因爲你沒有進口時間。也不要在tkinter gui中使用time.sleep,因爲它會導致它凍結。您可能想要使用線程定時器。就我所見,您從未稱爲counter_label(),因此您的標籤實際上是空白的。這就是爲什麼你看不到它。 –
@douglasrouse它不幫助我,如果你寫我的失敗我需要幫助,以解決它們 和我如何創建一個計時器與線程 – Florian