【问题标题】:Returning values from entry's when pressing a button using Tkinter使用 Tkinter 按下按钮时从条目返回值
【发布时间】:2021-07-16 11:31:40
【问题描述】:

我正在编写一个程序,该程序需要在按下按钮时调用两个值(来自 2 个条目)。我简化了代码以尝试隔离问题。出于某种原因,该程序没有按照我想要的方式运行。按下按钮时,输出为“A =”,然后如果我再次单击该按钮,我会得到“”A = entry1 B = entry2 A =。我一直试图找出问题几个小时,请帮忙。

import tkinter as tk

def button_function():    
    A = entry1.get()
    print('A=', A)
    
    B= entry2.get()
    print('B=', B)
   
root = tk.Tk()

canvas = tk.Canvas(root)
canvas.pack()

entry1 = tk.Entry(root)
entry1.place(relwidth=0.5, relheight=0.5)

entry2 = tk.Entry(root)
entry2.place(rely=0.5, relwidth=0.5, relheight=0.5)

button = tk.Button(root, text = "confirm", command= button_function)
button.place(relx=0.5, relwidth=0.5, relheight=1)

root.mainloop()

【问题讨论】:

  • 将command=button_function() 更改为command=button_function。
  • 为什么要编辑代码并添加正确的部分?这没有意义
  • @PCM 正确的部分也没有得到预期的结果:(他已经提到过这个问题!我想知道这怎么可能!

标签: python tkinter button get


【解决方案1】:

你只需要把command=button_function()改成command=button_function就可以了!

【讨论】:

  • @Charles 将此答案标记为已接受,如果这可以解决您的问题!
  • 我试过了,不幸的是它似乎没有什么不同。
  • 你现在面临什么问题?因为,这为我解决了。我试过回答你的问题!
  • 我还添加了 lambda,因此我可以多次单击该按钮。我觉得很奇怪的是,例如,如果我输入 entry1 作为(3)和 entry2 作为(5)然后单击按钮,输出是“A =”,那么如果我再次单击按钮,输出是“ A= 3 B= 5 A=" 如果我​​第三次单击该按钮,则输出为 "A= 3 B= 5 A=3 B= 5 A="
  • 如果我在回答中写了 lambda。不,您不必多次使用lambda 进行工作!
猜你喜欢
  • 2015-03-18
  • 2017-01-24
  • 1970-01-01
  • 2013-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多