【问题标题】:How to accept user input using Tkinter?如何使用 Tkinter 接受用户输入?
【发布时间】:2017-06-20 18:39:06
【问题描述】:

我目前正在尝试使用 Platypus 将我经常使用的 Python 脚本转换为应用程序。但是,我的脚本会多次提示用户输入,并使用该输入构造一个用于发出 API 请求的 URL。这是我的脚本中如何使用它的示例:

member_id = raw_input("What member id will you be using? ")

然后使用从用户获取的数据(并存储为变量)如下:

url_member = "https://api.example.com/member?member_id="+str(member_id)

由于使用 Platypus 创建的应用程序不允许用户输入(基于我通过脚本请求它的方式),我也打算尝试使用 Tkinter。但是,我已经阅读了文档并且在语法方面感到困惑(我对 Python 还是很陌生)。

谁能提供帮助,或者展示一个示例,说明我如何使用 Tkinter 更改我的用户输入请求(基于我上面的示例),以便应用程序能够正常工作?

我也在使用 Python 2.7。

【问题讨论】:

  • 我建议您使用EasyGUI 模块,这样您就不必学习 Tkinter 来使用它。你可以使用enterbox() 函数来做你想做的事。
  • 一般来说,您不能直接将程序移植到 GUI。 GUI 通常不会“多次提示用户输入”。相反,您构建一个表单并添加一个按钮。

标签: python python-2.7 tkinter


【解决方案1】:

您可以使用Entry() 小部件将用户输入作为变量获取。

用户可以在那里输入 ID,然后点击提交按钮。此按钮可以绑定到一个功能,该功能将执行您需要的任何操作。

import tkinter as tk # Python 3 import
# import Tkinter as tk # Python 2 import


root = tk.Tk()

def my_function():
    current_id = my_entry.get()
    url_member = "https://api.example.com/member?member_id="+str(current_id)
    print(url_member)
    #do stuff with url_member

my_label = tk.Label(root, text = "Member ID# ")
my_label.grid(row = 0, column = 0)
my_entry = tk.Entry(root)
my_entry.grid(row = 0, column = 1)

my_button = tk.Button(root, text = "Submit", command = my_function)
my_button.grid(row = 1, column = 1)

root.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多