目录
运行结果
程序讲解
在输入框中输入需要累加的数字点击计算就会得出运算结果
代码讲解
主要使用tkinter包实现
tkinter是Python中用于构建图形用户界面(GUI)的标准库。它提供了一组工具和组件,可以用来创建各种窗口、按钮、文本框、菜单等GUI元素,并通过事件处理来实现交互功能。
首先导入tkinter包完成窗口的创建和定义
#导包
import tkinter as tk
# 实例化窗口
win = tk.Tk()
# 窗口命名
win.title('win')
# 窗口大小
win.geometry('300x300')
# 刷新窗口
win.mainloop()
运行结果
这是我们定义的窗口,窗口没有任何东西,现在我们往窗口添加控件
frame1 = tk.Frame(win)
frame1.grid(row=0, column=0,padx=10)
tk.Frame(win)
:创建一个新的框架对象,将其放置在win
窗口中。
frame1.grid(row=0, column=0, padx=10)
:使用grid
布局管理器将frame1
框架放置在win
窗口中的第0行、第0列位置,并设置左右边距为10个像素(padx=10
)
l1 = tk.Label(frame1,text="输入数字")
l1.grid(row=0,pady=2)
tk.Label(frame1, text="输入数字")
:创建一个新的标签对象,将其放置在frame1
框架中,并设置标签显示的文本为"输入数字"。l1.grid(row=0, pady=2)
:使用grid
布局管理器将l1
标签放置在frame1
框架中的第0行,并设置上下边距为2个像素(pady=2
)。
e1 = tk.Entry(frame1,bd=5,width=10)
e1.grid(row=1,pady=20)
tk.Entry(frame1, bd=5, width=10)
:创建一个新的输入框对象,将其放置在frame1
框架中,并设置输入框的边框宽度为5个像素,宽度为10个字符。e1.grid(row=1, pady=20)
:使用grid
布局管理器将e1
输入框放置在frame1
框架中的第1行,并设置上下边距为20个像素(pady=20
)
l2 = tk.Label(frame1,text="运算结果")
l2.grid(row=3,pady=7)
t1= tk.Text(frame1,bg='red',state="normal",width=10,height=10)
t1.grid(row=4)
frame2 = tk.Frame(win)
frame2.grid(row=0,column=1)
t2 = tk.Text(frame2,state="normal",width=20,height=15)
t2.grid(row=0,column=1,pady=10)
tk.Text(frame1, bg='red', state="normal", width=10, height=10)
:创建一个新的文本框对象,将其放置在frame1
框架中,并设置文本框的背景颜色为红色,状态为正常,宽度为10个字符,高度为10行。t1.grid(row=4)
:使用grid
布局管理器将t1
文本框放置在frame1
框架中的第4行。
现在我们运行
接下来我们定义函数来实现累加算法
def clockme():
num = int(e1.get())
count = 0
for i in range(0,num+1):
t2.insert('end',f"{i}")
t2.insert('end', "\n")
count += i
t1.insert('end',f"{count}")
num = int(e1.get())
:从输入框e1
中获取用户输入的内容,并将其转换为整数类型后赋值给变量num
。count = 0
:初始化变量count
为0,用于累加从0到num
的整数之和。for i in range(0, num+1):
:使用for
循环遍历从0到num
的整数。t2.insert('end', f"{i}")
:将当前整数i
插入到文本框t2
的末尾。t2.insert('end', "\n")
:插入一个换行符\n
到文本框t2
的末尾,实现换行显示。count += i
:累加当前整数i
的值到变量count
中。t1.insert('end', f"{count}")
:将累加结果count
的值插入到文本框t1
的末尾。
最后定义按钮来调用函数
button = tk.Button(frame2,text="计算",command=clockme,bd=3,width=17,height=2)
button.grid(row=2,column=1,padx=5,pady=20)
button = tk.Button(frame2, text="计算", command=clockme, bd=3, width=17, height=2)
:创建一个名为button
的按钮对象,该按钮显示文本为"计算",当按钮被点击时执行clockme
函数,按钮的边框宽度为3,宽度为17个字符,高度为2个字符。button.grid(row=2, column=1, padx=5, pady=20)
:使用grid
布局管理器将按钮button
放置在frame2
框架中的第2行第1列的位置,同时设置按钮与周围组件的水平间距为5个像素(padx=5
),垂直间距为20个像素(pady=20
)
最后我们就完成了程序的编写
全部代码
#导包
import tkinter as tk
# 实例化窗口
win = tk.Tk()
# 窗口命名
win.title('win')
# 窗口大小
win.geometry('300x300')
frame1 = tk.Frame(win)
frame1.grid(row=0, column=0,padx=10)
l1 = tk.Label(frame1,text="输入数字")
l1.grid(row=0,pady=2)
e1 = tk.Entry(frame1,bd=5,width=10)
e1.grid(row=1,pady=20)
l2 = tk.Label(frame1,text="运算结果")
l2.grid(row=3,pady=7)
t1= tk.Text(frame1,bg='red',state="normal",width=10,height=10)
t1.grid(row=4)
frame2 = tk.Frame(win)
frame2.grid(row=0,column=1)
t2 = tk.Text(frame2,state="normal",width=20,height=15)
t2.grid(row=0,column=1,pady=10)
def clockme():
num = int(e1.get())
count = 0
for i in range(0,num+1):
t2.insert('end',f"{i}")
t2.insert('end', "\n")
count += i
t1.insert('end',f"{count}")
button = tk.Button(frame2,text="计算",command=clockme,bd=3,width=17,height=2)
button.grid(row=2,column=1,padx=5,pady=20)
win.mainloop()