代码之家  ›  专栏  ›  技术社区  ›  Tom Newing

如何在Tkinter文本框/输入框中计算用户输入的数字并输出到另一个文本框或标签?

  •  0
  • Tom Newing  · 技术社区  · 11 月前

    我使用Python和Tkinter将一个棋盘游戏转换为程序,这是我的第一个项目。游戏结束后,有四个文本框供玩家输入分数。还有一个第四个文本框,他们可以在其中输入跳过回合损失的分数。

    我想做的是,当用户在相应的框中输入了所有这些数字后,他们可以点击一个名为“计算”的按钮,四个分数的总和减去跳过轮次的分数,将显示在标签或另一个文本框中。

    我对编程很陌生,我正在努力让它发挥作用。

    我附上了一张程序的图片,以帮助理解我想做什么。 The game, note the score boxes at the bottom ]( https://i.sstatic.net/wjmcPlQY.png )

    我一直在实际的游戏程序之外练习,试图将用户在两个输入框中输入的数字加在一起,但没有奏效。我知道我想让代码用简单的英语做什么:“接受用户在这些文本框中输入的所有这些整数变量,执行计算,并在这里显示结果。”但是,我不具备Python语法知识来实现这一点。我在网上找不到任何东西。

    我将包括我的练习代码,但请注意,我知道这段代码可能非常错误,而且显然不起作用。但希望它能帮助说明我想做什么。提前感谢。

    import tkinter
    
    class MyGui:
        
     def __init__(self):
        
      self.window = tkinter.Tk()
    
    
      self.e1 = tkinter.Entry(self.window)
      self.e1.pack(fill='x')
    
      self.e2 = tkinter.Entry(self.window)
      self.e2.pack(fill='x')
      
      
      self.label = tkinter.Label(self.window)
      self.label.pack(fill='x')
      
      self.button1 = tkinter.Button(self.window, text="add", font=('Arial', 16), command=self.add)
      self.button1.pack()
    
    
      self.window.mainloop()
    
    
     def add(self):
      entry1 = self.e1.get
      entry1 = int(entry1)
    
      entry2 = self.e2.get
      entry2 = int(entry2)
    
      self.label = entry1 + entry2 
      
      
    
      
    
    MyGui()
    
    1 回复  |  直到 11 月前
        1
  •  0
  •   thecodingsage    11 月前

    你需要添加括号来调用函数,否则它只会得到函数引用。

    并使用 self.label.config(text=entry1 + entry2) 以更新文本。

    经过上述所有更改,结果如下:

    import tkinter
    
    class MyGui:
        
     def __init__(self):
        
      self.window = tkinter.Tk()
    
    
      self.e1 = tkinter.Entry(self.window)
      self.e1.pack(fill='x')
    
      self.e2 = tkinter.Entry(self.window)
      self.e2.pack(fill='x')
    
      self.label = tkinter.Label(self.window, text="Enter something and click Add to see something here!")
      self.label.pack(fill='x')
      
      self.button1 = tkinter.Button(self.window, text="add", font=('Arial', 16), command=self.add)
      self.button1.pack()
    
    
      self.window.mainloop()
    
    
     def add(self):
      entry1 = self.e1.get()
      entry1 = int(entry1)
    
      entry2 = self.e2.get()
      entry2 = int(entry2)
    
      self.label.config(text=entry1 + entry2)
      
    
    MyGui()