是否可以在Tkinter中显示python输入语句?

时间:2018-07-18 05:54:43

标签: python tkinter

我有需要用户输入的python代码,因此我使用了很多输入语句。现在,我正在使用Tkinter创建GUI,并希望在Tkinter中显示这些输入语句。有办法吗?

例如。

var=float(input("enter a number"))

现在,我想显示输入语句“在Tkinter中输入数字”。有可能做到吗?如果是,怎么办?

1 个答案:

答案 0 :(得分:1)

您可以使用tkinter的input命令来代替使用askstring函数。这将弹出一个小对话框,询问问题,并将用户的输入返回到脚本。

import tkinter as tk
import tkinter.simpledialog as sd

def getUserInput():
    userInput = sd.askstring('User Input','Enter your name')
    print(f'You said {userInput}')

root = tk.Tk()
btn = tk.Button(root,text="Get Input", command=getUserInput)
btn.grid()
root.mainloop()

如果您想输入数值,tkinter还具有askfloataskinteger函数。这些允许您指定最小值和最大值。

import tkinter as tk
import tkinter.simpledialog as sd

def getUserInput():
    userInput = sd.askstring('User Input','Enter your name')
    print(f'You said {userInput}')

def getUserFloatInput():
    options = {'minvalue':3.0,'maxvalue':4.0}
    userInput = sd.askfloat('User Input','Enter an approximation of Pi',**options)
    print(f'You said pi is {userInput}')

def getUserIntegerInput():
    options = {'minvalue':4,'maxvalue':120}
    userInput = sd.askinteger('User Input','How old are you?',**options)
    print(f'You said you are {userInput}')

root = tk.Tk()
btn1 = tk.Button(root,text="Get String Input", command=getUserInput)
btn1.grid()
btn2 = tk.Button(root,text="Get Float Input", command=getUserFloatInput)
btn2.grid()
btn3 = tk.Button(root,text="Get Integer Input", command=getUserIntegerInput)
btn3.grid()
root.mainloop()