大家好,本文将围绕python gui输入框内容获取展开说明,python规范化快捷键是一个很多人都想弄明白的事情,想搞清楚python gui界面设计需要先了解以下几个事情。
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()方法
:
是一种简单的布局方法,如果不加参数的默认方式,将按布局语句的先后,以最小占用空间的方式自上而下地排列控件实例,并且保持控件本身的最小尺寸Python解释器的安装步骤。
用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()
<