Tkinter-1-GUI介绍、常用组件、标准属性、几何布局
2019-08-03 13:48
651 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mk1843109092/article/details/98321293
Tkinter
PyGTK
wxPython
PyQt
商业授权可能有问题
相对位置布局,随意改变窗口大小会导致混乱
使用place函数,分为绝对布局和相对布局,绝对布局使用x,y参数
相对布局使用relx,rely, relheight, relwidth
利用row,column编号,都是从0开始
sticky: N,E,S,W表示上下左右,用来决定组件从哪个方向开始
支持ipadx,padx等参数,跟pack函数含义一样
支持rowspan,columnspan,表示跨行,跨列数
创建多个组件
最后,启动总面板的消息循环
GUI介绍
- GraphicalUserInterface,图形用户界面
- GUI for Python: Tkinter
- wxPython
- PyQt
-
绑定的是TK GUI工具集,用途Python包装的Tcl代码
-
Tkinter的替代品
-
跨平台的Python GUI
-
跨平台的
import tkinter tkinter._test()
Tkinter常用组件
-
按钮
Button 按钮组件 RadioButton 单选框按钮 CheckButton 选择按钮组件 Listbox 列表框组件
-
文本输入框
Entry 单行文本框组件 Spinbox 输入控件,可以指定输入范围值 Text 多行文本框组件 Message 用来显示多行文本
-
标签组件
Label 菜单组件 MenuButton 菜单按钮组件,可以使用Menu代替 Menu 菜单控件,用于显示菜单栏,下拉菜单,弹出菜单
-
滚动条
Scale 滑块组件 Scrollbar 滚动条组件
-
其他组件
Canvas 画布组件 Frame 框架组件,将多个组件编组 Toplevel 创建子窗口容器组件 PanedWindow 窗口布局管理的插件,可以包含一个或者多个子控件 LabelFrame 简单的容器控件 tkMessageBox 显示应用程序的消息框
标准属性
- 标准属性也就是所有控件的共同属性
属性 | 描述 |
---|---|
Dimension | 控件大小 |
Color | 控件颜色 |
Font | 控件字体 |
Anchor | 锚点 |
Relief | 控件样式 |
Bitmap | 位图 |
Cursor | 光标 |
几何布局
-
pack()
最简单,挨个摆放,从上往下,系统自动设置 - side: 停靠方位,可选值LEFT,TOP,RIGHT,BOTTON
- fill:填充方式,X,Y,BOTH,NONE
- expande:YES/NO
- anchor:N,E,S,W,CENTER
- ipadx:x方向的内边距
- ipady:y方向
- padx:x方向外边距
- pady:
place()
-
明确方位的摆放
grid()
-
通用使用方式:组件对象.grid(设置,)
# pack布局案例 import tkinter baseFrame = tkinter.Tk() # 以下所有代码都是创建一个组件,然后布局 btn1 = tkinter.Button(baseFrame, text='A') btn1.pack(side=tkinter.LEFT, expand=tkinter.YES, fill=tkinter.Y) btn2 = tkinter.Button(baseFrame, text='B') btn2.pack(side=tkinter.TOP, expand=tkinter.YES, fill=tkinter.BOTH) btn2 = tkinter.Button(baseFrame, text='C') btn2.pack(side=tkinter.RIGHT, expand=tkinter.YES, fill=tkinter.NONE, anchor=tkinter.NE) btn2 = tkinter.Button(baseFrame< 3ff7 span class="token punctuation">, text='D') btn2.pack(side=tkinter.LEFT, expand=tkinter.NO, fill=tkinter.Y) btn2 = tkinter.Button(baseFrame, text='E') btn2.pack(side=tkinter.TOP, expand=tkinter.NO, fill=tkinter.BOTH) btn2 = tkinter.Button(baseFrame, text='F') btn2.pack(side=tkinter.BOTTOM, expand=tkinter.YES) btn2 = tkinter.Button(baseFrame, text='G') btn2.pack(anchor=tkinter.SE) baseFrame.mainloop()
- 鼠标拖动,按比例进行缩放
# grid布局案例 import tkinter baseFrame = tkinter.Tk() #下面被注释掉的一行代码跟下面两行代码等效 #lb1 = tkinter.Label(baseFrame, text="账号: ").grid(row=0, sticky= tkinter.W) lb1 = tkinter.Label(baseFrame, text="账号: ") lb1.grid(row=0, sticky= tkinter.W) en = tkinter.Entry(baseFrame) en.grid(row=0, column=1, sticky=tkinter.E) lb2 = tkinter.Label(baseFrame, text="密码: ").grid(row=1, sticky= tkinter.W) tkinter.Entry(baseFrame).grid(row=1, column=1, sticky=tkinter.E) btn = tkinter.Button(baseFrame, text="登录").grid(row=2, column=1, sticky=tkinter.W) baseFrame.mainloop()
- 鼠标拖动,内容固定在左上角,不动
组件的大致使用步骤
- 创建面板
- 创建面板上的各种组件 指定组件的父组件,即依附关系
- 利用相应的属性对组件进行设置
- 给组件安排布局
# label例子 import tkinter base = tkinter.Tk() # 负责标题 base.wm_title("label Test") lb1 = tkinter.Label(base, text="Python Label") # 布局 lb1.pack() lb2 = tkinter.Label(base, text="绿色背景", background="green") lb2.pack() lb3 = tkinter.Label(base, text="蓝色背景", background="blue") lb3.pack() # 消息循环 base.mainloop()
# Button例子 import tkinter def showLabel(): global baseFrame # 在函数中定义一个Label # label的父组件是baseFrame lb = tkinter.Label(baseFrame, text="显示Label") lb.pack() baseFrame = tkinter.Tk() btn = tkinter.Button(baseFrame, text="Show Label", command=showLabel) btn.pack() baseFrame.mainloop()
Button的属性: anchor 设置按钮中文字的对其方式,相对于按钮的中心位置 background(bg) 设置按钮的背景颜色 foreground(fg) 设置按钮的前景色(文字的颜色) borderwidth(bd) 设置按钮边框宽度 cursor 设置鼠标在按钮上的样式 command 设定按钮点击时触发的函数 bitmap 设置按钮上显示的位图 font 设置按钮上文本的字体 width 设置按钮的宽度 (字符个数) height 设置按钮的高度 (字符个数) state 设置按钮的状态 text 设置按钮上的文字 image 设置按钮上的图片
相关文章推荐
- 图形用户界面(gui)、swing组件介绍、三大常用布局管理器、面板
- RelativeLayout相对布局属性及一些常用属性介绍
- 相对布局 RelativeLayout 常用属性介绍
- RelativeLayout布局,以及部分常用属性介绍scaleType/gravity/layout_gravity [zt]
- Andorid常用布局和常用属性介绍
- 鱼c笔记——Python的GUI编程(二):Tkinter的两大常用组件Label和Button
- 相对布局常用属性介绍(RelativeLayout)
- 相对布局常用属性介绍
- Jmail组件常用类属性和方法介绍
- android几种布局组件的常用属性
- Python GUI之tkinter 常用组件
- RelativeLayout布局,以及部分常用属性介绍scaleType/gravity/layout_gravity
- 安卓学习笔记(七)、布局常用属性介绍
- Python图形GUI工具包tkinter如何调整元件在窗口中的位置几何布局管理
- Android 基础:常用布局 介绍 & 使用(附 属性查询)
- Python面向对象和图形用户界面(二)---- GUI的基本框架 & 常用组件 & 布局管理
- android布局常用属性介绍
- WPF布局控件常用属性介绍
- 介绍微信小程序开发中常用布局组件(三)
- Java笔记(10)-图形界面设计、Swing、窗口、JFrame、常用组件和布局、处理事件、MVC结构、对话框、GUI