用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的方法,通过以上实验,证明该方法是有效的,本文的仍有方法不足或考虑不周的地方,图形界面的画法有各种各样的方法来画,并不局限于此,未来可以继续研究更加高级简便的方法。

相关推荐
HABuo4 小时前
【linux文件系统】磁盘结构&文件系统详谈
linux·运维·服务器·c语言·c++·ubuntu·centos
Howrun7775 小时前
关于Linux服务器的协作问题
linux·运维·服务器
颜酱5 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
m0_736919105 小时前
C++代码风格检查工具
开发语言·c++·算法
喵手5 小时前
Python爬虫实战:旅游数据采集实战 - 携程&去哪儿酒店机票价格监控完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集结果csv导出·旅游数据采集·携程/去哪儿酒店机票价格监控
2501_944934735 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
小白同学_C5 小时前
Lab3-page tables && MIT6.1810操作系统工程【持续更新】
linux·c/c++·操作系统os
helloworldandy6 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
失忆爆表症6 小时前
05_UI 组件库集成指南:Shadcn/ui + Tailwind CSS v4
前端·css·ui
小迷糊的学习记录6 小时前
Vuex 与 pinia
前端·javascript·vue.js