我正在做一个我模拟网球比赛的计划。目前我将结果打印在shell中,如下所示:
15 - 0
30 - 0
40 - 0
40 - 15
40 - 30
game: B Borg
0 - 15
0 - 30
15 - 30
etc....
如何创建一个简单的文本框,每次在我的代码中更新结果时都会更新?
我尝试过不同的代码,但每当创建文本框时,它就会卡在主循环中,只显示15 - 0 ......
每次分数变化时,我都需要能够向gui函数发送2个变量。
from tkinter import *
root = Tk()
var = StringVar()
l = Label(root, textvariable = var)
l.pack()
root.update_idletasks()
def gui(player1_points, player2_points):
var.set(player1_points,"-" ,player2_points)
答案 0 :(得分:0)
首先,您应该在某个时刻致电tk.mainloop()
,而不是tk.update_idletasks()
。但是,您的代码需要进行多项更改才能正常工作。
Here's a nice Tkinter example它可以让你非常接近你想要的东西(向下滚动到标有“标签中的动态内容”的最后一节)。
答案 1 :(得分:0)
感谢您的帮助!!
def print_funk(player1_points, player2_point):
points_pl_1 = "0"
points_pl_2 = "0"
if player1_points <=3 and player2_points <=3:
if player1_points == 0:
points_pl_1 = "0"
if player1_points == 1:
points_pl_1 = "15"
if player1_points == 2:
points_pl_1 = "30"
if player1_points == 3:
points_pl_1 = "40"
if player2_points == 0:
points_pl_2 = "0"
if player2_points == 1:
points_pl_2 = "15"
if player2_points == 2:
points_pl_2 = "30"
if player2_points == 3:
points_pl_2 = "40"
#print (points_pl_1, "-", points_pl_2)
gui(points_pl_1, points_pl_2):
这是一个打印功能,它从另一个功能接收“实时”值,但有一点时间延迟。我想要的是不是在shell中打印结果而是我想在GUI中打印结果,使其看起来更像是一个“真正的”网球游戏。因此,每次调用def print_funk(player1_points, player2_point):
时,我都想调用GUI函数并在那里打印结果。即致电gui(points_pl_1, points_pl_2):