如何使用 Python 中的条目小部件显示输出?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/34793321/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to display an output using entry widget in Python?
提问by amorsiko1987
How can I display an output through Entry Widget. Let say I am adding 2 numbers and wanted to display their sum in a textbox using entry widget.
如何通过 Entry Widget 显示输出。假设我要添加 2 个数字,并希望使用输入小部件在文本框中显示它们的总和。
from tkinter import *
from tkinter.messagebox import *
def show_answer():
Ans = int(num1.get()) + int(num2.get())
ans.set(Ans)
Entry(main, text = "%s" %(ans) ).grid(row=2, column=1)
main = Tk()
Label(main, text = "Enter Num 1:").grid(row=0)
Label(main, text = "Enter Num 2:").grid(row=1)
Label(main, text = "The Sum is:").grid(row=2)
num1 = Entry(main)
num2 = Entry(main)
blank = Entry(main)
num1.grid(row=0, column=1)
num2.grid(row=1, column=1)
blank.grid(row=2, column=1)
Button(main, text='Quit', command=main.quit).grid(row=4, column=0, sticky=W, pady=4)
Button(main, text='Show', command=show_answer).grid(row=4, column=1, sticky=W, pady=4)
mainloop()
Example output:
示例输出:
回答by Theresa Ott
If you want to display the answer in your window you could do so by first creating a lable. Then you could change the dispayed text in that lable to what you want it to show.
如果您想在窗口中显示答案,您可以先创建一个标签。然后,您可以将该标签中显示的文本更改为您希望它显示的内容。
Creating the lable:
创建标签:
lsum = Tk.Label(master, text = 'The sum is:')
lsum.grid(row=5, column=1, sticky=W, pady=4)
And then updating it:
然后更新它:
lsum["text"] = "The sum is: " + str(ans)
Implenting it in your code:
在您的代码中实现它:
from tkinter import *
from tkinter.messagebox import *
def show_answer():
Ans = int(num1.get()) + int(num2.get())
ans.set(Ans)
lsum["text"] = "The sum is: " + str(ans)
Entry(main, text = "%s" %(ans) ).grid(row=2, column=1)
main = Tk() Label(main, text = "Enter Num 1:").grid(row=0) Label(main, text = "Enter Num 2:").grid(row=1) Label(main, text = "The Sum is:").grid(row=2)
num1 = Entry(main) num2 = Entry(main) blank = Entry(main)
num1.grid(row=0, column=1) num2.grid(row=1, column=1) blank.grid(row=2, column=1)
Button(main, text='Quit', command=main.quit).grid(row=4, column=0, sticky=W, pady=4) Button(main, text='Show', command=show_answer).grid(row=4, column=1, sticky=W, pady=4)
lsum = Tk.Label(master, text = 'The sum is:')
lsum.grid(row=5, column=1, sticky=W, pady=4)
mainloop()
回答by amorsiko1987
I already have the answer
我已经有了答案
from tkinter import *
from tkinter.messagebox import *
def show_answer():
Ans = int(num1.get()) + int(num2.get())
blank.insert(0, Ans)
main = Tk()
Label(main, text = "Enter Num 1:").grid(row=0)
Label(main, text = "Enter Num 2:").grid(row=1)
Label(main, text = "The Sum is:").grid(row=2)
num1 = Entry(main)
num2 = Entry(main)
blank = Entry(main)
num1.grid(row=0, column=1)
num2.grid(row=1, column=1)
blank.grid(row=2, column=1)
Button(main, text='Quit', command=main.destroy).grid(row=4, column=0, sticky=W, pady=4)
Button(main, text='Show', command=show_answer).grid(row=4, column=1, sticky=W, pady=4)
mainloop()
回答by Frederico Purri
This will work too (user friendly)
这也可以(用户友好)
from tkinter import *
import tkinter.messagebox
def show_answer():
Ans = int(num1.get()) + int(num2.get())
tkinter.messagebox.showinf('answer',Ans)
main = Tk()
Label(main, text="Enter Num 1:").grid(row=0)
Label(main, text="Enter Num 2:").grid(row=1)
num1 = Entry(main)
num2 = Entry(main)
num1.grid(row=0,column=1)
num2.grid(row=1,column=1)
Button(main,text='Quit',command=main.destroy).grid(row=4,column=0,sticky=W,pady=4)
Button(main,text='Show',command=show_answer).grid(row=4,column=1,sticky=W,pady=4)
mainloop()
回答by daybreak24
from tkinter import *
from math import *
main = Tk()
main.title('CALCULATOR')
def add():
blank.delete(0, END)
Ans = int(num1.get()) + int(num2.get())
blank.insert(0, Ans)
def sub():
blank.delete(0, END)
Ans = int(num1.get()) - int(num2.get())
blank.insert(0, Ans)
def mult():
blank.delete(0, END)
Ans = int(num1.get()) * int(num2.get())
blank.insert(0, Ans)
def div():
blank.delete(0, END)
Ans = int(num1.get()) / int(num2.get())
blank.insert(0, Ans)
def clear():
blank.delete(0, END)
num2.delete(0, END)
num1.delete(0, END)
def sq():
blank.delete(0, END)
Ans = int(num1.get()) * int(num1.get())
blank.insert(0, Ans)
def sqrtt():
blank.delete(0, END)
h = int(num1.get())
a = sqrt(h)
Ans = (int(a))
blank.insert(0, Ans)
main.geometry('500x100')
Label(main, text = "Enter Num 1:").grid(row=0)
Label(main, text = "Enter Num 2:").grid(row=1)
Label(main, text = "The Answer is:").grid(row=2)
num1 = Entry(main)
num2 = Entry(main)
blank = Entry(main)
num1.grid(row=0, column=1)
num2.grid(row=1, column=1)
blank.grid(row=2, column=1)
Button(main, text='Quit', command=main.destroy).grid(row=4, column=0, sticky=W)
Button(main, text='Add', command=add).grid(row=0, column=3, sticky=W,)
Button(main, text='Subtract', command=sub).grid(row=0, column=4, sticky=W)
Button(main, text='Multiply', command=mult).grid(row=0, column=5, sticky=W)
Button(main, text='Divide', command=div).grid(row=0, column=6, sticky=W)
Button(main, text='^2', command=sq).grid(row=0, column=7, sticky=W)
Button(main, text='Sqrt', command=sqrtt).grid(row=0, column=8, sticky=W)
Button(main, text='Clear', command=clear).grid(row=0, column=9, sticky=W)
mainloop()
I was working on something similar and I modified it and went a little overboard with it, it doesn't work with decimals but it works with every other function.
我正在研究类似的东西,我对其进行了修改,但它有点过火了,它不适用于小数,但它适用于所有其他功能。