如何用python做一个界面,python做一个界面程序

大家好,本文将围绕用python能不能做出有界面的软件?展开说明,如何用python做一个界面是一个很多人都想弄明白的事情,想搞清楚python做一个界面程序需要先了解以下几个事情。

本篇开始介绍用Python的Tkinter模块来设计图形化界面。尽量用简洁的语言和实例让读者能看明白,轻松入门用python代码画雪人。

1.1 创建窗口

tkinter模块是Pyhton自带的标准GUI库,可以直接导入。导入tkinter模块后,可以使用下面的方法创建一个简单的窗口。其中top是自定义的Tk对象名称,也可以取其他名称,mainloop()方法放在程序最后一行。演示程序及效果可参考下图。

from tkinter import *
top = Tk()  #通过Tk()方法建立一个根窗口
top.mainloop()  #进入等待处理窗口事件

在这里插入图片描述

1.2 设置窗口属性

创建窗口之后,可以通过一系列方法设置窗口样式,包括窗口标题、大小、背景等,下列是窗口相关的方法。
在这里插入图片描述
演示程序及效果可参考下图:

from tkinter import *
top = Tk()  #创建窗口
top.title("智能课堂考勤系统")  #定义窗口名称
top.geometry('500x300')  #设置主窗口大小,注意中间对的符号是小写字母x
#创建文本标签Label,top是第一个参数为父窗口,text是标签内容
#设置位置参数,使用place方法可将控件放在指定位置,
#place()方法中窗口显示区左上角是(0,0),x是向右递增,y是向下递增
Label(top,text = "这是一个标签").place(x = 200,y = 100)  
#创建按钮,text是功能按钮的名称
Button(top,text = "新学生注册").place(x = 220,y = 150)
top.mainloop()

在这里插入图片描述

1.3 Widget组件

1.3.1 Widget组件的分类
Widget中文翻译为组件或者控件,窗口建立后,就可以在窗口里面放置一些组件,可以是文字、按钮等。tkinter模块包含了多种组件,下列是一些常用的组件介绍。
在这里插入图片描述
1.3.2 Widget的共同方法
设计组件时会看到下列常用的共同方法。
在这里插入图片描述

1.4 布局管理

在设计图形用户界面程序时,可以使用三种方法定位各个组件在窗口中的指定位置,这三种方法分别是pack()方法、grid()方法、place()方法。下面对这三种方法进行详细讲解。
1.4.1 pack()方法
pack()方法是使用相对位置的概念处理Widget控件配置的,其语法如下:
pack的语法
上面语法中的widget是需要布局的组件,options为pack()方法的相关参数,参数默认为widget.pack()时,组件按照由上往下显示,其他参数及其函数如下表所示。
在这里插入图片描述
(1)side参数的属性值
在这里插入图片描述
(2)padx/pady参数设定组件边界与窗口边界的距离或是组件边界间的距离。
演示程序及效果参考如下:

from tkinter import *  
top = Tk()
top.title("TK")  #窗口标题
top.geometry("200x150")  #窗口长宽
#标签组件左右边界距离是80,距离窗口或组件的距离为10
Label(top,text = "一是一",bg="red").pack(padx=80,pady=10)
Label(top,text = "二是二",bg="yellow").pack(padx=80,pady=10)
Label(top,text = "三是三",bg="white").pack(padx=80,pady=10)
top.mainloop()

在这里插入图片描述

在演示程序中,标签“一是一”与上边窗口的边界间距为10,但是它与标签“二是二”得间距由于彼此影响所以间距是20,同里“二是二”与“三是三”之间的距离也是20。
(3)fill参数用于设置组件填充所分配空间的方式,它主要有下面4个属性。
在这里插入图片描述
(4)anchor参数表示设置组件在窗口中的位置,具体属性如下图所示。
方位属性
例如在窗口的右下角显示一个标签,演示程序及效果如下图。

from tkinter import *  
top = Tk()
top.title("TK")  #窗口标题
top.geometry("200x100")  #窗口长宽
Label(top,text = "返回",bg="red").pack(anchor = "s" ,side = RIGHT)
top.mainloop()

在这里插入图片描述

1.4.2 grid()方法
grid()方法是一种以格状或者类似Excel电子表格方式包装和定位窗口组件的方法。其语法如下:
grid方法
上面语法中的widget是需要布局的组件,options为grid()方法的相关参数,其参数及说明如下表所示。
在这里插入图片描述
(1)row和column参数的概念可参考下图。
行/列布局
适当调整row和column的值,即可定位窗口组件的位置。演示程序及效果可参考下图。

from tkinter import *  
top = Tk()
top.title("TK")  #窗口标题
top.geometry("200x100")  #窗口长宽
Label(top,text = "一是一",bg="red").grid(row=0,column=0)
Label(top,text = "二是二",bg="yellow").grid(row=0,column=1)
Label(top,text = "三是三",bg="white").grid(row=1,column=0)
top.mainloop()

在这里插入图片描述

(2)grid方法中padx和pady参数的用法与pack方法中的padx和pady参数相同,可直接参考下面的案例。

from tkinter import *  
top = Tk()
top.title("TK")  #窗口标题
top.geometry("200x100")  #窗口长宽
Label(top,text = "一是一",bg="red").grid(row=0,column=0,padx=30,pady=5)
Label(top,text = "二是二",bg="yellow").grid(row=0,column=1,padx=30,pady=5)
Label(top,text = "三是三",bg="white").grid(row=1,column=0,padx=30,pady=5)
Label(top,text = "四是四",bg="pink").grid(row=1,column=1,padx=30,pady=5)
top.mainloop()

在这里插入图片描述

1.4.3 place()方法
place()方法可以设置组件的大小以及组件在窗口中的精确位置,其参数及其含义如下表所示。
在这里插入图片描述
(1)x/y参数
place()方法内的x和y参数可直接设置组件在窗口的左上方位置,单位是像素。窗口显示区的左上角(x=0,y=0),x是向下递增,y是向右递增。演示程序及效果可参考下图。

from tkinter import *  
top = Tk()
top.title("TK")  #窗口标题
top.geometry("200x100")  #窗口长宽
Label(top,text = "一是一",bg="red").place(x=1,y=0)
Label(top,text = "二是二",bg="yellow").place(x=50,y=30)
Label(top,text = "三是三",bg="white").place(x=0,y=60)
top.mainloop()

在这里插入图片描述

(2)width/height参数
这两个参数可以直接设置组件的宽度和高度。设计一个距离窗口左上角水平距离50,距离左上角垂直距离20,组件的宽度50,高度70的标签组件,演示程序及效果可参考下图。

from tkinter import *  
top = Tk()
top.title("TK")  #窗口标题
top.geometry("200x100")  #窗口长宽
Label(top,text = "一是一",bg="yellow").place(x=50,y=20,width=50,height=70)
top.mainloop()

在这里插入图片描述

(3)relwidth/relheight参数
这两个参数可以设置组件大小分别占窗口的比例,进行等比例缩放,取值范围为0~1,演示程序及效果可参考下图。

from tkinter import *  
top = Tk()
top.title("TK")  #窗口标题
top.geometry("200x100")  #窗口长宽
Label(top,text = "一是一",bg="yellow").place(relwidth = 0.8,relheight=0.8)
top.mainloop()

在这里插入图片描述

以上是关于窗口创建、窗口组件布局方法的介绍。接下来会更新多种Widget组件的详细用法~
下一篇是关于Widget组件的详解 Python GUI 设计(二)—Widget组件详解

戒定慧61
关注 关注
  • 13
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
782
原创
1万+
点赞
1万+
收藏
9321
粉丝
关注
私信
写文章

热门文章

  • 如何用python做一个界面,python做一个界面程序 4810
  • python计算两个数的最大公约数和最小公倍数 4346
  • 鸡兔同笼python程序怎么写,鸡兔同笼python多种方法 3530
  • python计算两个数的最大公约数和最小公倍数 2917
  • python 麦语言,python数麦芒 2323

最新评论

  • 如何用python做一个界面,python做一个界面程序

    阿J~: 强呀强呀,好文支持!

  • 梦幻西游藏宝阁爬虫脚本,梦幻西游藏宝阁爬虫

    轩宇745: 怎么联系你,大哥

  • 用python编写注册登录程序,python编写用户登陆系统

    阿J~: 看到文章昏昏欲睡的我瞬间来了精神,必须支持

  • python语言程序设计 答案,python程序设计教程题库

    2401_84561313: def getNum(): ls=[] while True: num=input() if num: ls.append(eval(num)) else: break return ls def avg(ls): s=0 for i in ls: s+=i return s/len(ls) def dev(ls): a=avg(ls) s=0 for i in ls: s+=(i-a)**2 return s/len(ls) def median(ls): ls.sort() if len(ls)%2==0: return (ls[len(ls)//2]+ls[len(ls)//2]-1)/2 else: return ls[len(ls)//2] ls=getNum() print("数量",len(ls)) print("和",sum(ls)) print("平均值",avg(ls)) print("方差",dev(ls)) print("中位数",median(ls)) A = [ [1, 1, 1], [2, 2, 2], [3, 3, 3] ] B = [ [1, 0, 0], [0, 1, 0], [0, 0, 1] ] ls = [] for i in range(len(A)): ls.append([(A[i][j] + B[i][j]) for j in range(len(A[i]))]) print(ls) A = [ [1, 1, 1], [2, 2, 2], [3, 3, 3] ] B = [ [1, 0, 0], [0, 1, 0], [0, 0, 1] ] C = [] for i in range(len(A)): ls = [] for j in range(len(B)): s = 0 for k in range(len(A[i])): s += A[i][k]*B[k][j] ls.append(s) C.append(ls) for i in range(len(C)): for j in range(len(C[i])): print(C[i][j], end=' ') print() d = dict() for i in range(5): name = input() h = input() d[name] = h name = input() print('{} {}'.format(name, d[name])) ls = [] a = 0 b = 1 n = eval(input()) for i in range(n): ls.append(a) a, b = b, a+b print(ls) #输入指定的n n = eval(input()) #指定输入n个数,换行间隔 ls = [] for i in range(n): ls.append(eval(input())) ls.sort() #计算去掉一个最高分和最低分的平均值 ls = ls[1:-1] #输出最后得分 avg = sum(ls)/len(ls) print('该歌手最终成绩为{:.1f}'.format(avg))

  • python计算两个数的最大公约数和最小公倍数

    云雾栀子青,: 那个辗转相除法那应该是b = t吧

最新文章

  • 不安装python能运行python,python编程软件 免安装
  • python的英文含义,python英文含义
  • 学python需要装什么软件,自学python需要准备什么
2024
04月 16篇
03月 214篇
02月 108篇
01月 272篇
2023年172篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家天津水果玻璃钢雕塑订做价格人物玻璃钢雕塑信息福建常见商场美陈供货商郑州肖像玻璃钢卡通雕塑公司潍坊小品系列玻璃钢雕塑厂家厦门玻璃钢卡通雕塑咨询问价曲靖市玻璃钢雕塑定制大同商场美陈中意玻璃钢雕塑瓷厂阜沙玻璃钢雕塑革命主题玻璃钢雕塑销售方法汕尾玻璃钢人物浮雕雕塑规格上海进口玻璃钢雕塑省钱江苏大型商场美陈生产企业玻璃钢狼人雕塑图片深圳周年庆典商场美陈供应商建瓯玻璃钢雕塑厂家盐城玻璃钢马雕塑设计无锡玻璃钢雕塑制作厂家北京安卡通玻璃钢雕塑商场展位美陈晋城价值观玻璃钢雕塑中山市港口玻璃钢雕塑江苏创意玻璃钢雕塑订做价格舟山多彩玻璃钢雕塑市场玻璃钢雕塑好吗玻璃钢雕塑都用到哪些材料附近玻璃钢彩绘雕塑生产玻璃钢雕塑品种繁多云南景观玻璃钢雕塑批发香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化