python图形化界面设计gui,用python做图形用户界面

这篇文章主要介绍了python编写图形化界面的工具,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

原文链接:(八)Python 图形化界面设计 - 简书

声明:本篇文章为转载自(八)Python 图形化界面设计 - 简书,在原作者的基础上添加目录导航,旨在帮助大家以更高效率进行学习和开发。

Python-Tkinter 图形化界面设计(详细教程)

目录

Python-Tkinter 图形化界面设计(详细教程)

一、图形化界面设计的基本理解

二、窗体控件布局

2.1.根窗体显示实例

2.2. tkinter 常用控件

2.2.1 控件的共同属性

2.3 控件布局

2.3.1 pack()方法

2.3.2 grid()方法

2.3.3 place()方法

三、tkinter常见控件的特征属性

3.1、文本输入和输出相关控件

○ 3.1.1 标签(Label)和 消息(Message)

○ 3.1.2 文本框(Text)

○ 3.1.3 输入框(Entry)

3.2 按钮(Button)

3.3 单选按钮

3.4 复选框

3.5 列表框 与 组合框

3.5.1 列表框

3.5.2 组合框

3.6 滑块

3.7 菜单

3.8 子窗体

3.9 模式对话框(Modal)

3.9.1 交互对话框

3.9.2 文件选择对话框

3.9.3、颜色选择对话框

四、事件响应

五、背景图片

六、打开摄像头,显示

一、图形化界面设计的基本理解

当前流行的计算机桌面应用程序大多数为图形化用户界面(Graphic User Interface,GUI),即通过鼠标对菜单、按钮等图形化元素触发指令,并从标签、对话框等图型化显示容器中获取人机对话信息。 Python自带了tkinter 模块,实质上是一种流行的面向对象的GUI工具包 TK 的Python编程接口,提供了快速便利地创建GUI应用程序的方法。其图像化编程的基本步骤通常包括:

○ 导入 tkinter 模块 ○ 创建 GUI 根窗体 ○ 添加人机交互控件并编写相应的函数。 ○ 在主事件循环中等待用户触发事件响应。

二、窗体控件布局

2.1.根窗体显示实例

根窗体是图像化应用程序的根控制器,是tkinter的底层控件的实例。当导入tkinter模块后,调用 Tk()方法可初始化一个根窗体实例 root ,用 title() 方法可设置其标题文字,用geometry()方法可以设置窗体的大小(以像素为单位)。将其置于主循环中,除非用户关闭,否则程序始终处于运行状态。执行该程序,一个窗体就呈现出来了。在这个主循环的根窗体中,可持续呈现中的其他可视化控件实例,监测事件的发生并执行相应的处理程序。下面是根窗体呈现示例:

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

2.2. tkinter 常用控件

返回目录

常用控件:常用的10 多种,如下:

2.2.1 控件的共同属性

返回目录

在窗体上呈现的可视化控件,通常包括尺寸、颜色、字体、相对位置、浮雕样式、图标样式和悬停光标形状等共同属性。不同的控件由于形状和功能不同,又有其特征属性。在初始化根窗体和根窗体主循环之间,可实例化窗体控件,并设置其属性。父容器可为根窗体或其他容器控件实例。常见的控件共同属性如下表:标签及常见属性示例:

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

其中,标签实例lb 在父容器root中实例化,具有代码中所示的text(文本)、bg(背景色)、fg(前景色)、font(字体)、width(宽,默认以字符为单位)、height(高,默认以字符为单位)和 relief(浮雕样式)等一系列属性。 在实例化控件时,实例的属性可以“属性=属性值”的形式枚举列出,不区分先后次序。例如:“ text=‘我是第一个标签’ ”显示标签的文本内容,“bg=’#d3fbfb’”设置背景色为十六进制数RGB色 #d3fbfb等等。属性值通常用文本形式表示。 当然如果这个控件实例只需要一次性呈现,也可以不必命名,直接实例化并布局呈现出来,例如:

Label(root,text='我是第一个标签',font='华文新魏').pack()

属性 relief 为控件呈现出来的3D浮雕样式,有 FLAT(平的)、RAISED(凸起的)、SUNKEN(凹陷的)、GROOVE(沟槽状边缘)和 RIDGE(脊状边缘) 5种。

2.3 控件布局

返回目录

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

2.3.1 pack()方法

是一种简单的布局方法,如果不加参数的默认方式,将按布局语句的先后,以最小占用空间的方式自上而下地排列控件实例,并且保持控件本身的最小尺寸。如下的例子:

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

from tkinter import  *
root = Tk()

lbred = Label(root,text="Red",fg="Red",relief=GROOVE)
()
lbgreen = Label(root,text="绿色",fg="green",relief=GROOVE)
()
lbblue = Label(root,text="蓝",fg="blue",relief=GROOVE)
()
root.mainloop()

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

from tkinter import  *
root = Tk()

lbred = Label(root,text="Red",fg="Red",relief=GROOVE)
()
lbgreen = Label(root,text="绿色",fg="green",relief=GROOVE)
(side=RIGHT)
lbblue = Label(root,text="蓝",fg="blue",relief=GROOVE)
(fill=X)
root.mainloop()

2.3.2 grid()方法

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

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

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

看下面的例子:用grid()方法排列标签,设想有一个3x4的表格,起始行、列序号均为0.将标签lbred 至于第2列第0行;将标签lbgreen置于第0列第1行;将标签lbblue置于第1列起跨2列第2行,占20像素宽。

from tkinter import  *
root = Tk()

lbred = Label(root,text="Red",fg="Red",relief=GROOVE)
(column=2,row=0)
lbgreen = Label(root,text="绿色"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值