【发布时间】:2021-03-08 18:10:59
【问题描述】:
我正在尝试在 Tkinter 中制作 RPS(石头剪刀布)。我的代码完全可以正常工作,直到我按下 OK 按钮,当我这样做时,我得到了旋转的加载图标(MacOS)。我试图在活动监视器中查看我的 cpu,它是 TROUGH THE ROOF(100% cpu 使用率)
我尝试用谷歌搜索该问题并添加了time.sleep(0.2),但没有成功
from tkinter import *
from random import randint
from tkinter import messagebox
import time
def rock():
masterrock = Tk()
rl = Label(masterrock, text="rock, paper or scissor")
rl.grid(row=0, column=1)
rb = Button(masterrock, text="OK", command=lambda: rock2())
rb.grid(row=2, column=1)
player1 = Entry(masterrock)
player1.grid(row=1, column=1)
global player
player = (player1.get())
t = ["rock", "paper", "scissor"]
global computer
computer = t[randint(0, 2)]
def rock2():
s = True
while s == True:
if player == computer:
gllabel = Label(masterrock, text="tie")
gllabel.grid(row=2, column=1)
elif player == "rock":
if computer == "paper":
gllabel1 = Label(masterrock, text="you lose!")
gllabel1.grid(row=2, column=1)
else:
gllabel2 = Label(masterrock, text="You win!")
gllabel2.grid(row=2, column=1)
elif player == "paper":
if computer == "scissor":
gllabel3 = Label(masterrock, text="You lose")
gllabel3.grid(row=2, column=1)
else:
gllabel4 = Label(masterrock, text="You win!")
gllabel4.grid(row=2, column=1)
elif player == "scissor":
if computer == "rock":
gllabel5 = Label(masterrock, text="You lose")
gllabel5.grid(row=2, column=1)
else:
gllabel6 = Label(masterrock, text="You win!")
gllabel6.grid(row=2, column=1)
time.sleep(0.2)
mainloop()
我只有 14 岁,所以我的代码可能有点草率。提前谢谢
【问题讨论】:
-
使用
<tkinter.Tk>.after(time_in_ms, function)创建一个tkinter循环 -
听起来不错,但我应该把它放在哪里?
标签: python macos loops tkinter