前置知识
Entry介绍
- Entry用来输入单行文本
Entry(root, text='input your text here').pack()
- 在Entry中设定初始值,使用textvariable将变量与Entry绑定,确定输入的变量类型
e = StringVar()
entry = Entry(root, textvariable=e).pack()
e.set('input your text here')
- 设置状态为只读
e2 = StringVar()
entry = Entry(root, textvariable=e2)
e2.set('not modify')
entry.pack()
entry['state'] = 'readonly'
- 其他请看下面资料链接
Label 介绍
使用语法
widget = Radiobutton( master, parameter=value, ... )
- master:文本框控件的父容器
- parameter:文本框的参数
- value:参数对应的值
参数说明
- text 标签文字,可以在标签上添加文字
- relief 标签样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。
- font 标签文字字体设置,font=(‘字体’, 字号, ‘bold/italic/underline/overstrike’)
- 其他请看下面资料链接
Button 介绍
使用语法
widget = Button( master, parameter=value, ... )
- master:按钮控件的父容器
- parameter:按钮的参数
- value:参数对应的值
参数说明
- state 按钮状态选项,状态有DISABLED/NORMAL/ACTIVE
- command 按钮关联的函数,当按钮被点击时,执行该函数
- 其他请看下面资料链接
设计思路
- 首先,导入我们需要的包 — tkinter,并通过 实例化一个 Tk 对象 创建窗口
import tkinter
#创建窗口
root = tkinter.Tk()
#创建框架
frame = tkinter.Frame(root)
root.mainloop()
- 大致 规划 各组件的 位置
- 进行代码设计,输入等等
代码
import tkinter
#创建窗口
root = tkinter.Tk()
#创建框架
frame = tkinter.Frame(root)
#摆放框架
frame.pack(padx= 20,pady = 10)
#创建变量
v1 = tkinter.StringVar()
v2 = tkinter.StringVar()
v3 = tkinter.StringVar()
#创建标签
L1 = tkinter.Label(frame,text = '简单计算器',font = '微软雅黑,30')
L2 = tkinter.Label(frame,text = '=')
#摆放标签
L1.grid(row = 0,column = 2,pady = 10,padx = 10)
L2.grid(row = 1,column = 2,padx= 10,pady = 10)
#定义筛选方法
def text(content):
return content.isdigit()
#创建输入窗口
e1 = tkinter.Entry(frame,width = 10,textvariable = v1,validate = 'key',validatecommand = (text,'%P'))
e2 = tkinter.Entry(frame,width = 10,textvariable = v2,validate = 'key',validatecommand = (text,'%P'))
e3 = tkinter.Entry(frame,width = 10,textvariable = v3,validate = 'key',validatecommand = (text,'%P'),state ='readonly')
#摆放输入
e1.grid(row = 1,column = 0,pady =10,padx = 10)
e2.grid(row = 1,column = 1,padx = 10,pady = 10)
e3.grid(row = 1,column = 3,padx = 10,pady = 10)
#定义计算方法
def add():
result = int(v1.get()) + int(v2.get())
v3.set(result)
def subtract():
result = int(v1.get()) - int(v2.get())
v3.set(result)
def ride():
result = int(v1.get()) * int(v2.get())
v3.set(result)
def division():
result = int(v1.get()) / int(v2.get())
v3.set(result)
#创建按键
b0 = tkinter.Button(frame,text = '+',command = add,bd = 5)
b1 = tkinter.Button(frame,text = '-',command = subtract,bd = 5)
b2 = tkinter.Button(frame,text = '*',command = ride,bd = 5)
b3 = tkinter.Button(frame,text = '/',command = division,bd = 5)
#摆放按键
b0.grid(row = 2,column = 0,padx = 10,pady = 10)
b1.grid(row = 2,column = 1,pady = 10)
b2.grid(row = 2,column = 2,pady = 10)
b3.grid(row = 2,column = 3,pady = 10)
#进入消息循环
root.mainloop()
效果展示
友情链接
这篇文章如果对小伙伴们有帮助的话,希望点个赞支持一下~ 十分感谢~