Python Tkinter窗口未打开
我的tkinter窗口在添加while true函数后未打开。我怎样才能让它工作呢。虽然它是真实的,但我需要它在我的功能Python Tkinter窗口未打开,python,tkinter,Python,Tkinter,我的tkinter窗口在添加while true函数后未打开。我怎样才能让它工作呢。虽然它是真实的,但我需要它在我的功能 from tkinter import * from random import random import sys import random maxcount = int (input("How many times ")) i = 1 cats = Tk() cats.wm_title("maxcount test") cats.geometry("500x500
from tkinter import *
from random import random
import sys
import random
maxcount = int (input("How many times "))
i = 1
cats = Tk()
cats.wm_title("maxcount test")
cats.geometry("500x500")
def black():
while True:
i+1
if i == 5:
break
Button(cats, text="Start", command=black()).grid(row=1, column=0)
Label(cats, text="How many times:").grid(row=0, column=0)
cats.mainloop()
您有两个错误:-
i+1
可能意味着i+=1
,然后将i
声明为global
,以便在函数范围内对其进行修改。-按钮命令是
black()
,这是对函数black的调用。需要的是对函数的引用黑色
(不带()
)
需要注意的一点是:@Sierra_Mountain_Tech指出,用户必须首先为
tkinter应用程序将启动
从tkinter导入*
从随机导入随机
导入系统
随机输入
maxcount=int(输入(“多少次”))
i=1
猫=Tk()
CAT.wm_标题(“最大计数测试”)
猫形几何(“500x500”)
def black():
全球i
尽管如此:
i+=1
如果i>=5:#如果多次按start,程序将冻结。将ifi==5
更改为ifi>=5
您可能希望在答案中添加的最后一项内容。用户在tkinter应用程序启动之前正在使用input
,因此在控制台中输入整数之前,程序不会打开。至少对tkinter来说,他们似乎是新手,所以这可能是他们不知道的。谢谢你改进了我的答案。while循环完全没有必要。你只是循环直到我是5,为什么不把我设为5然后返回呢?这是一个有效的问题,也许OP可以回答@Brian。好吧,这可能是创建一个最小示例的一个工件。有什么原因需要使用while
循环吗?目前您所做的只是将变量设置为等于5,这不需要while
循环。您是否遗漏了一些内容,使得while
循环成为必要?
from tkinter import *
from random import random
import sys
import random
maxcount = int (input("How many times "))
i = 1
cats = Tk()
cats.wm_title("maxcount test")
cats.geometry("500x500")
def black():
global i
while True:
i += 1
if i >= 5: # <-- changed from i == 5 at @Sierra_Mountain_Tech suggestion
break
Button(cats, text="Start", command=black).grid(row=1, column=0)
Label(cats, text="How many times:").grid(row=0, column=0)
cats.mainloop()