Tkinter模块练习(python):简易计算器

前置知识

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 按钮关联的函数,当按钮被点击时,执行该函数
  • 其他请看下面资料链接

设计思路

  1. 首先,导入我们需要的包 — tkinter,并通过 实例化一个 Tk 对象 创建窗口
import tkinter

#创建窗口
root = tkinter.Tk()
#创建框架
frame = tkinter.Frame(root)

root.mainloop()
  1. 大致 规划 各组件的 位置
  2. 进行代码设计,输入等等

代码

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()

效果展示

在这里插入图片描述

友情链接

tkinter控件

Python Tkinter Grid布局管理器详解


这篇文章如果对小伙伴们有帮助的话,希望点个赞支持一下~ 十分感谢~

在这里插入图片描述


猜你喜欢

转载自blog.csdn.net/weixin_46627433/article/details/122897801