菜鸟IT的博客 >> Python
计算器开发-实战模拟(第1节)【按钮布局,界面设计】-需要用到frame布局,结合grid布局一起用。锻炼程序编程思维,
# 一定要定义编码
# -*- coding: UTF-8 -*-
# 【1】导入库tkinter库,不弄别名简称
import tkinter
# 导入提示库,不弄别名简称
import tkinter.messagebox
# 新导入库,用于pillow,支持各种后缀的图片
from PIL import ImageTk,Image
# --------自定义按钮对应的函数--开始--------------- #
########
# --------自定义按钮对应的函数--结束--------------- #
# 【1】创建软件窗口实体,窗体
chuangkou1=tkinter.Tk()
# 【2】软件界面顶部显示名称以及版本号
chuangkou1.title("计算器开发-frame-实战")
# 【3】软件的长宽、在当前桌面屏幕的左边距、顶上边距
# 定义窗口自身宽度
ck1w=319
# 定义窗口自身高度
ck1h=257
# 获取屏幕宽度
pmw=chuangkou1.winfo_screenwidth()
# 获取屏幕高度
pmh=chuangkou1.winfo_screenheight()
# 计算水平方向的起点位置坐标
x1=pmw/2-ck1w/2
# 计算垂直方向的起点位置坐标
y1=pmh/2-ck1h/2
# 设置窗体所在屏幕的坐标位置
chuangkou1.geometry("%dx%d+%d+%d"%(ck1w,ck1h,x1,y1))
# 【4】软件界面窗体的背景属性,背景颜色改成绿色,绿色的颜色属性值
chuangkou1["background"]="#111111"
# 开始正式编辑代码↓↓↓↓
# 最上面第1个单行文本框
shuchu1=tkinter.Entry(chuangkou1,fg="#ffffff",bg="#111111",font=("黑体",18))
# 使用sticky=tkinter.EW把文本框的grid布局横向拉伸填充
shuchu1.grid(row=0,column=0,sticky=tkinter.EW,ipady=6)
# 创建Frame框架用于布局排版各种数字按钮
f1=tkinter.Frame(chuangkou1)
f1.grid(row=1,column=0)
# 开始添加按钮,不建议一个一个的创建按钮。
# 批量添加按钮。把所有的按钮载入到1个列表数组里。
# 先添加按钮文本的列表。
AnNiu_WenBen_S=[7,8,9,"×",4,5,6,"-",1,2,3,"+",0,".","清空","退格"]
# 定义按钮排版的行和列的变量,每4个为1行
# 行变量
HangV=0
# 列变量
LieV=0
for v in AnNiu_WenBen_S:
if (LieV!=0 and LieV%4==0):
HangV+=1 # 换行
LieV=0 # 换行以后重新给列复制
AnNiu1=tkinter.Button(f1,text=v,width=10,height=2)
AnNiu1.grid(row=HangV,column=LieV)
LieV+=1
# 添加等号按钮,并且让等号按钮合并4列
AnNiu_DengHao=tkinter.Button(f1,text="=",width=6)
AnNiu_DengHao.grid(row=HangV+1,column=0,columnspan=4,sticky=tkinter.EW)
# ------末尾必须放死循环代码---分割线------ #
# 【End.1】持续显示软件界面,相当于死循环,↓
# 【End.1】这个窗体的作用是监听这个界面发生的一切事件,包括鼠标点击动作。
# 【End.1】下面这个死循环代码必须放在最后面。
chuangkou1.mainloop()
菜鸟IT博客[2021.12.01-14:21] 访问:329