Python Tkinter窗口未打开

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

我的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")

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,程序将冻结。将if
i==5
更改为if
i>=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()