python窗口界面设计,python界面开发教程

大家好,小编为大家解答python窗口界面开发课程 程序员无声的问题。很多人还不知道python窗口界面设计,现在让我们一起来看看吧!

Python图形化界面设计

窗体控件布局

#coding:utf-8

from tkinter import *
root= Tk()
root.title('我的第一个Python窗体')
root.geometry('240x240') # 这里的乘号不是 * ,而是小写英文字母 x
root.mainloop()

请添加图片描述

tkinter 常用控件

控件 名称 作用
Button 按钮 单击触发事件
Canvas 画布 绘制图形或绘制特殊控件
Checkbu tton 复选框 多项选择
Entry 输入框 接收单行文本输入
Frame 框架 用于控件分组
Label 标签 单行文本显示
Lisbox 列表框 显示文本列表
Menu 菜单 创建菜单命令
Message 消息 多行文本标签,与Label 用法类似
Radiobutton 单选按钮 从互斥的多个选项中做单项选择
Scale 滑块 默认垂直方向,鼠标拖动改变数值形成可视化交互
Scrollbar 滑动条 默认垂直方向,可鼠标拖动改变数值,可与 Text、Lisbox、Canvas等控件配合移动可视化空间
Text 文本框 接收或输出显示多行文本
Toplevel 新建窗体容器 在顶层创建新窗体
  • 控件的共同属性
属性 说明 取值
anchor 文本起始位置 CENTER(默认),E,S,W,N,NE,SE,SW,NW
bg 背景色
bd 加粗(默认 2 像素)
bitmap 黑白二值图标 网上查找
cursor 鼠标悬停光标 网上查找
font 字体
fg 前景色
height 高(文本控件的单位为行,不是像素)
image 显示图像
justify 多行文本的对其方式 CENTER(默认),LEFT,RIGHT,TOP,BOTTOM
padx 水平扩展像素
pady 垂直扩展像素
relief 3D浮雕样式 FLAT,RAISED,SUNKEN,GROOVE,RIDGE
state 控件实例状态是否可用 NORMAL(默认),DISABLED
width 宽(文本控件的单位为行,不是像素)
  • 标签实例
#coding:utf-8

from tkinter import *
root = Tk()
root.title('Python窗体')
lb = Label(root,text='我是第一个标签',\
        bg='#d3fbfb',\
        fg='red',\
        font=('华文新魏',32),\
        width=20,\
        height=2,\
        relief=SUNKEN)
lb.pack()
root.mainloop()

请添加图片描述

  • 标签布局

控件的布局通常有pack()、grid() 和 place() 三种方法。

pack()方法:
是一种简单的布局方法,如果不加参数的默认方式,将按布局语句的先后,以最小占用空间的方式自上而下地排列控件实例,并且保持控件本身的最小尺寸伪原创api使用的正确方法和建议

用pack() 方法不加参数排列标签。为看清楚各控件所占用的空间大小,文本用了不同长度的中英文,并设置relief=GROOVE的凹陷边缘属性。如下所示:

#coding:utf-8

from tkinter import *
root = Tk()
root.title('Python窗体')
lbred = Label(root,text="Red",fg="Red",relief=GROOVE)
lbred.pack()
lbgreen = Label(root,text="绿色",fg="green",relief=GROOVE)
lbgreen.pack()
lbblue = Label(root,text="蓝",fg="blue",relief=GROOVE)
lbblue.pack()
root.mainloop()

请添加图片描述

使用pack()方法可设置 fill、side 等属性参数。其中,参数fill 可取值:fill=X,fill=Y或fill=BOTH,分别表示允许控件向水平方向、垂直方向或二维伸展填充未被占用控件。参数 side 可取值:side=TOP(默认),side=LEFT,side=RIGHT,side=BOTTOM,分别表示本控件实例的布局相对于下一个控件实例的方位。如下例子:

#coding:utf-8

from tkinter import *
root = Tk()
root.title('Python窗体')
lbred = Label(root,text="Red",fg="Red",relief=GROOVE)
lbred.pack()
lbgreen = Label(root,text="绿色",fg="green",relief=GROOVE)
lbgreen.pack(side=RIGHT)
lbblue = Label(root,text="蓝",fg="blue",relief=GROOVE)
lbblue.pack(fill=X)
root.mainloop()

请添加图片描述

grid()方法:是基于网格的布局。先虚拟一个二维表格,再在该表格中布局控件实例。由于在虚拟表格的单元中所布局的控件实例大小不一,单元格也没有固定或均一的大小,因此其仅用于布局的定位。pack()方法与grid()方法不能混合使用。

grid()方法常用布局参数如下:

column: 控件实例的起始列,最左边为第0列
columnspan: 控件实例所跨越的列数,默认为1列
ipadx,ipady: 控件实例所呈现区域内部的像素数,用来设置控件实例的大小
padx,pady: 控件实例所占据空间像素数,用来设置实例所在单元格的大小
row: 控件实例的起始行,最上面为第0行
rowspan: 控件实例的起始行数,默认为1行。

#coding:utf-8

from tkinter import *
root = Tk()
root.title('Python窗体')
lbred = Label(root,text="Red",fg="Red",relief=GROOVE)
lbred.grid(column=2,row=0)
lbgreen = Label(root,text="绿色",fg="green",relief=GROOVE)
lbgreen.grid(column=0,row=1)
lbblue = Label(root,text="蓝",fg="blue",relief=GROOVE)
lbblue.grid(column=1,columnspan=2,ipadx=20,row=2)
root.mainloop()

请添加图片描述

place()方法:根据控件实例在父容器中的绝对或相对位置参数进行布局。

x,y:控件实例在根窗体中水平和垂直方向上的其实位置(单位为像素)。注意,根窗体左上角为0,0,水平向右,垂直向下为正方向
relx,rely:控件实例在根窗体中水平和垂直方向上起

  • 8
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值