Python Tkinter图形工具使用方法及实例解析


Posted in Python onJune 15, 2020

Tkinter 常用组件

按钮

  • Button 按钮组件
  • RadioButton 单选框组件
  • CheckButton 选择按钮组件
  • Listbox 列表框组件

文本输组件

  • Entry 单行文本框组件
  • Text 多行文本框组件

标签组件

  • Label 标签组件,可以显示图片和文字
  • Message 标签组件, 可以根据内容将文字换行

菜单

  • Menu 菜单组件
  • MenuButton 菜单按钮组件,可以实用Menu代替

滚动条

  • Scale 滑动组件
  • Scrollbar 滚动条组件

其他组件 Canvas 画布组件

  • Frame 框架组件,将多个组件编组
  • Toplevel 创建子窗口容器组件

组件的大致实用步骤创建总面板创建面板上各种组件

1.指定组件的父组件,即依附关系

2.利用相应的属性对组件进行设置

3.给组件安排布局最后启动总面板的消息循环组件布局

控制组件的摆放方式

三种布局:

  • pack: 按照方位布局
  • place: 按照坐标布局
  • grid: 网格布局

pack布局

  • 最简单,代码量最少,挨个摆放,默认从上到下,系统自动设置
  • 通用实用方式为:组件对象.pack(设置......)
  • side:停靠方位,可选值为LEFT,TOP,RIGHT,BOTTOM
  • fill:填充方式,x,y,BOTH,NONE
  • expande:YES/NO 扩充
  • anchor:N,E,S,W,CENTER
  • ipadx:x方向的内边距
  • ipady:y
  • padx:x的外方向边界
  • pady:y

grid布局

  • 通用使用方式:组件对象.grid(设置......)
  • 利用row,cblumn编号,都是从0开始
  • sticky:N,E,S,W表示上下左右,用来决定组件从哪个方向开始
  • 支持ipadx,padx等参数,跟pack函数一样
  • 支持rowspan,columnspan,代表跨行,跨列数列

place布局:

  • 明确方位的摆放
  • 相对位置布局,随意改变窗口大小会导致混乱
  • 使用place函数,分为绝对布局和相对布局,绝对布局使用X,Y参数
  • 相对布局使用relx,rely,relheight,relwidth

案例1:创建一个自己定义的弹窗、并且里面有文字内容

执行完成就会弹出一个白色定义好的小方框,里面的内容就是你定义的

import tkinter

base = tkinter.Tk()                # 创建总面板
# 负责标题
base.wm_title("Label Test")            # 创建面板的标题
lb = tkinter.Label(base, text="Pyhton Label")   # 创建一些内容,把创建的内容指定给我之前创建好的名为base的面板,Pyhton Label为面板的内容
# 给相应组件指定布局 
lb.pack()                     # 给相应组件指定布局
base.mainloop()                  # 启动总面板的消息循环(大致意思了解为启动这个面板)

Python Tkinter图形工具使用方法及实例解析

案例2:Button案例,创建一个弹窗,里面生成一个按钮,当按钮被按下去的时候,执行我定义的函数

import tkinter
def showlabel():
  global baseFrame   # 调用全局变量,baseFrame,也可以把baseFrame = tkinter.Tk() 放到函数上面
  lb = tkinter.Label(baseFrame, text="我是函数里面的内容")
  lb.pack()

if __name__ == '__main__':
  baseFrame = tkinter.Tk ()
  btn = tkinter.Button(baseFrame, text="点击我、就会执行函数", command=showlabel) # command为指定要执行的函数,不填默认不执行
  btn.pack()
  baseFrame.mainloop()

执行结果如下:

Python Tkinter图形工具使用方法及实例解析

pack布局

  • 最简单,代码量最少,挨个摆放,默认从上到下,系统自动设置
  • 通用实用方式为:组件对象.pack(设置......)
  • side:停靠方位,可选值为LEFT,TOP,RIGHT,BOTTOM
  • fill:填充方式,x,y,BOTH,NONE
  • expande:YES/NO 扩充
  • anchor:N,E,S,W,CENTER
  • ipadx:x方向的内边距
  • ipady:y
  • padx:x的外方向边界
  • pady:y

案例3:pack 布局案例

# pack 布局案例
import tkinter


def button1():
  # 函数内所有代码都是创建一个组件,然后布局
  global baseFreame
  btn1 = tkinter.Button(baseFreame, text='A')
  btn1.pack(side=tkinter.LEFT, expand=tkinter.YES, fill=tkinter.Y)

  btn2 = tkinter.Button(baseFreame, text='B')
  btn2.pack(side=tkinter.TOP, expand=tkinter.YES, fill=tkinter.BOTH)

  btn3 = tkinter.Button(baseFreame, text='C')
  btn3.pack(side=tkinter.RIGHT, expand=tkinter.YES, fill=tkinter.NONE, anchor=tkinter.NE)

  btn4 = tkinter.Button(baseFreame, text='D')
  btn4.pack(side=tkinter.LEFT, expand=tkinter.NO, fill=tkinter.Y)

  btn5 = tkinter.Button(baseFreame, text='E')
  btn5.pack(side=tkinter.TOP, expand=tkinter.NO, fill=tkinter.BOTH)

  btn6 = tkinter.Button(baseFreame, text='F')
  btn6.pack(side=tkinter.BOTTOM, expand=tkinter.YES)

  btn7 = tkinter.Button(baseFreame, text='G')
  btn7.pack(anchor=tkinter.SE)

if __name__ == '__main__':

  baseFreame = tkinter.Tk()
  button1 ()
  baseFreame.mainloop()

执行结果如下:

Python Tkinter图形工具使用方法及实例解析

grid布局

  • 通用使用方式:组件对象.grid(设置......)
  • 利用row,cblumn编号,都是从0开始
  • sticky:N,E,S,W表示上下左右,用来决定组件从哪个方向开始
  • 支持ipadx,padx等参数,跟pack函数一样
  • 支持rowspan,columnspan,代表跨行,跨列数列

案例3:grid布局案例

import tkinter

def button1():
  # 函数内所有代码都是创建一个组件,然后布局
  global baseFreame
  btn1 = tkinter.Label(baseFreame, text='账户:')
  btn1.grid(row=0, sticky=tkinter.W)
  en = tkinter.Entry(baseFreame)
  en.grid(row=0, column=1, sticky=tkinter.E)

  btn2 = tkinter.Label(baseFreame, text='密码:')
  btn2.grid(row=1, sticky=tkinter.W)
  en2 = tkinter.Entry(baseFreame)
  en2.grid(row=1, column=1, sticky=tkinter.E)

  btn2 = tkinter.Button(baseFreame, text='登陆')
  btn2.grid(row=2, column=1, sticky=tkinter.W)

if __name__ == '__main__':
  baseFreame = tkinter.Tk()
  button1()
  baseFreame.mainloop()

执行结果如下:

Python Tkinter图形工具使用方法及实例解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 装饰器功能以及函数参数使用介绍
Jan 27 Python
Python找出文件中使用率最高的汉字实例详解
Jun 03 Python
Python如何实现文本转语音
Aug 08 Python
Win10下Python环境搭建与配置教程
Nov 18 Python
对Python3中的print函数以及与python2的对比分析
May 02 Python
Python面向对象基础入门之编码细节与注意事项
Dec 11 Python
Python 从列表中取值和取索引的方法
Dec 25 Python
python 与服务器的共享文件夹交互方法
Dec 27 Python
使用python和pygame制作挡板弹球游戏
Dec 03 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
Mar 05 Python
Keras使用ImageNet上预训练的模型方式
May 23 Python
python批量修改交换机密码的示例
Sep 22 Python
使用Keras画神经网络准确性图教程
Jun 15 #Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
Jun 15 #Python
python中元组的用法整理
Jun 15 #Python
详解Python设计模式之策略模式
Jun 15 #Python
python能做哪方面的工作
Jun 15 #Python
python实现二分类和多分类的ROC曲线教程
Jun 15 #Python
python属于解释型语言么
Jun 15 #Python
You might like
php 指定范围内多个随机数代码实例
2016/07/18 PHP
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
js window.onload 加载多个函数和追加函数详解
2014/01/08 Javascript
js中传递特殊字符(+,&)的方法
2014/01/16 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
2016/06/08 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
2017/06/29 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
2020/02/11 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
vue各种事件监听实例(小结)
2020/06/24 Javascript
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
玩转python爬虫之正则表达式
2016/02/17 Python
深入理解Python中变量赋值的问题
2017/01/12 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
python flask框架实现重定向功能示例
2019/07/02 Python
python变量命名的7条建议
2019/07/04 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
Python self用法详解
2020/11/28 Python
美国婴童服装市场上的领先品牌:Carter’s
2018/02/08 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
Hibernate持久层技术
2013/12/16 面试题
手机业务员岗位职责
2013/12/13 职场文书
美发店5.1活动方案
2014/01/24 职场文书
给校长的建议书300字
2014/05/16 职场文书
二手房购房协议书范本
2014/10/05 职场文书
2014年社区个人工作总结
2014/12/02 职场文书
鼋头渚导游词
2015/02/05 职场文书
2016大学先进团支部事迹材料
2016/03/01 职场文书
python 三边测量定位的实现代码
2021/04/22 Python
「租借女友」第2季樱泽墨角色PV&新视觉图公开
2022/03/21 日漫
vue中的可拖拽宽度div的实现示例
2022/04/08 Vue.js