【问题标题】:Tkinter input from entry widget inside a function来自函数内条目小部件的 Tkinter 输入
【发布时间】:2021-08-18 14:36:49
【问题描述】:

我有一个程序,我从输入小部件中获取用户的输入,并根据输入执行功能。现在必须做什么才能在函数内部接受用户的输入?

例如

  • 如果用户在输入小部件中输入计算。
  • 去计算()
  • 在函数内部,它需要用户输入 2 个数字。如何使用之前使用的相同条目小部件从用户那里获取这些内容。

【问题讨论】:

  • 您打算在哪里返回该值?你也应该在你的问题中发布代码并作为文本(和相应的格式),最简单的似乎是使用 simpledialog 并询问数字
  • 您是否做过任何研究或完成过 tkinter 教程? Tkinter 教程将涵盖创建小部件和从中获取值的基础知识。
  • 我正在学习中

标签: python tkinter tkinter-entry


【解决方案1】:

这是最简单的(不是最匹配主题的方式,但它有效):

from tkinter import Tk, Button, simpledialog


def calc():
    x = simpledialog.askinteger('Calculation', 'Enter x')
    y = simpledialog.askinteger('Calculation', 'Enter Y')
    print(x + y)


root = Tk()

Button(root, text='Calculate', command=calc).pack()

root.mainloop()

为了简单起见,使用了按钮,但您应该了解如何按照您的方式执行此操作。您还打算在哪里返回该值?当然不能返回到command 参数等,取决于你如何设置它(如果你将返回的值分配给某个变量,那么可能没问题)

还有:
我强烈建议关注PEP 8 - Style Guide for Python Code。函数和变量名应该在snake_case,类名在CapitalCase。如果= 用作关键字参数的一部分(func(arg='value')),则不要在= 周围留有空格,但如果将= 用于分配值(variable = 'some value'),则在= 周围留有空格。在运算符周围留出空间(+-/ 等:value = x + y(此处除外value += x + y))。在函数和类声明周围有两个空行。

【讨论】:

  • 是的按钮可以使用....但正如我所说我需要从条目小部件输入....我有很多功能,如计算()...所以我需要输入什么被执行......就像一个机器人......谢谢你
  • @Sandy 是的,我明白了,我只是在演示对函数的调用及其作用,最简单的方法是为我使用按钮,您只需从需要的任何地方调用此函数跨度>
  • 谢谢我尝试使用按钮,但它只是跳过它并直接执行该过程...最终给出错误
  • 我让它工作了....谢谢伙计...以前我犯了一个小错误,也感谢您的提示
  • @Sandy 很难说没有你的代码会发生什么,你可能在应该是command=func 的时候做了像command=func() 这样的事情,如果你需要传递参数然后使用command=lambda: func(*args, **kwargs)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-25
  • 2022-12-08
  • 2018-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多