在python中创建一个简单的输出文本框

时间:2015-07-07 14:03:38

标签: python tkinter textbox

我正在做一个我模拟网球比赛的计划。目前我将结果打印在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)

2 个答案:

答案 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):