用python画计算器图形界面

问题

Grid(表格)布局管理器采用表格结构组织组件。子组件的位置由行/列确定的单元格决定,子组件可以跨越多行/列。每一列中,列宽由这一列中最宽的单元格确定。Grid适合表格形式的布局,可以实现复杂的界面,因而被广泛应用。下面用grid布局管理器创建一个计算器界面。

方法

  1. Grid有两个最重要的参数:一个是row,另一个是column。
  2. 他们用来将子组件放置到什么位置。
  3. 如果不指定row,则会将子组件放置到第一个可用的行上,如果不指定column,则使用第0行。

代码清单 1

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| from tkinter import * root=Tk() #20*20说明初始化时主窗口的大小,280,280代表初始化窗口的位置 root.geometry("200*200+280+280") root.title('计算器示例') #grid 表格布局 L1=Button(root,text='1',width=5,bg='yellow') L2=Button(root,text='2',width=5) L3=Button(root,text='3',width=5) L4=Button(root,text='4',width=5) L5=Button(root,text='5',width=5,bg='green') L6=Button(root,text='6',width=5) L7=Button(root,text='7',width=5) L8=Button(root,text='8',width=5) L9=Button(root,text='9',width=5,bg='yellow') L0=Button(root,text=0) Lp=Button(root,text='.') L1.grid(row=0,column=0) #按钮放在0行0列 L2.grid(row=0,column=1)#按钮放在0行1列 L3.grid(row=0,column=2)#按钮放在0行2列 L4.grid(row=1,column=0)#按钮放在1行0列 L5.grid(row=1,column=1)#按钮放在1行1列 L6.grid(row=1,column=2)#按钮放在1行2列 L7.grid(row=2,column=0)#按钮放在2行0列 L8.grid(row=2,column=1)#按钮放在2行1列 L9.grid(row=2,column=1)#按钮放在2行2列 L0.grid(row=3,column=0,columnspan=2,sticky=E+W)#跨2行 Lp.grid(row=3,column=2,sticky=E+W)#左右贴紧 root.mainloop() |

结语

针对此类设计图形界面问题,使用tkinter来画简单的图形界面,提出grid中row和column的方法,通过以上实验,证明该方法是有效的,本文的仍有方法不足或考虑不周的地方,图形界面的画法有各种各样的方法来画,并不局限于此,未来可以继续研究更加高级简便的方法。

相关推荐
IMPYLH4 分钟前
HTML 的 <section> 元素
前端·html
小张成长计划..7 分钟前
【Linux】21:进程间通信
linux
X1A0RAN22 分钟前
密匣 PsdKeep:一个属于你自己的 Chrome 账号记事本
前端·chrome
529宝宝起名网34 分钟前
用 Python 开发历史名字查询与起名灵感工具:从古籍人物数据库到名字文化故事生成
开发语言·前端·python
赵民勇37 分钟前
systemd-sysusers命令详解
linux·运维
灿烂的贝壳37 分钟前
FC SAN多路径负载均衡配置指南
linux
mONESY39 分钟前
从 RAG 到 Agentic RAG:固定流程的五个毛病,和把它拆成一张图
javascript
梦帮科技42 分钟前
从 Guest 到 Platinum:Prompt 配额、API Key 与访问控制的安全闭环
javascript·git·架构·node.js·reactjs·html5·visual studio
binqian1 小时前
【Linux】内核怎么管理侦听socket
linux·网络协议
linux_cfan1 小时前
videojs v10 源代码系列解读:10 · `DestroyMixin`:双重 rAF 延迟销毁
前端·javascript·音视频