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

相关推荐
forest_092 小时前
多 Agent 协作第二课:交叉验证≠独立验证
人工智能·python·算法·机器学习·prompt·agi
用户47949283569152 小时前
从一句话或代码仓到可交互 HTML:开源 Agent 画图技能 Archify v3.2 实测与选型边界
前端·后端·面试
吴可可1233 小时前
WScript Shell操作注册表详解
开发语言
纪念 2293 小时前
C++ 算法基础 (差分)
开发语言·c++·算法
风骏时光牛马5 小时前
生成一个AI多模态标题,仅输出一条标题,无额外文字、问句、备选、配图、文案等任何附加内容,不需要其他的任务服务 只要标题。
前端
测试界的小码农5 小时前
【Linux 命令实战(06):Linux 文件权限管理,掌握 chmod、chown、chgrp】
linux·运维·服务器
wangruofeng5 小时前
从 GIF 到 AVIF:网页图片格式演进与 2026 年选型指南
前端·架构
databook5 小时前
时间序列数据,先拆规律还是先查异常
python·数据挖掘·数据分析
师夷长技以自愈6 小时前
手搓 AI Agent 第 8 篇:从手写循环到画流程图——LangGraph 封装
人工智能·python
清晨Coding6 小时前
为什么用 React Developer Tools 查看组件树这么乱?
前端·react.js