Python tkinter的grid布局及Text动态显示方法


Posted in Python onOctober 11, 2018

在python中gui编程有很多中选择,如果是相对简单的gui的话使用python自带的tkinter即可,但是由于tkinter没有详细的API文档,要使用起来比较麻烦,而且不够美观,如果是要求比较高的gui编程,推荐使用PyQt或者wxpython。

我在这里主要说一下tkinter中3种布局方式中的grid布局,在之前写个比较简单的软件的时候遇到了写问题,在此记录下来。

1. grid中的一些参数:需要声明的是,行列大小由该列/行中最大组件大小所决定!!

column:  对应的放置的所在的列序号
columnspan: 表示该组件需要横跨多少列
row:   对应的放置的所在的行序号
rowspan:  表示组件需要横跨多少行
ipadx:  需要注意,这个参数表示x方向的内部填充,即以内部颜色为标准向左右方向扩展
ipady:  同上
padx:  这个是表示x方向的外部填充
pady:  同上

例子如下:

import tkinter as tk 

windows = tk.Tk()
windows.geometry('500x500') ## 规定窗口大小500*500像素
windows.resizable(False, False) ## 规定窗口不可缩放
lab1 = tk.Label(windows, text='lab1', height=1, width=15, bg='blue', fg='white')
lab1.grid(row=0, column=0, padx=5, pady=5)
lab2 = tk.Label(windows, text='lab2', height=1, width=15, bg='blue', fg='white')
lab2.grid(row=0, column=1, ipadx=5, ipady=5)
lab3 = tk.Label(windows, text='lab3', height=1, width=15, bg='red', fg='white')
lab3.grid(row=0, column=2)
windows.mainloop()

Python tkinter的grid布局及Text动态显示方法

图片中lab1附近白色的部分就是外部填充的,根据外部颜色来向外扩展;lab2中明显蓝色变大,是内部填充,根据内部颜色向外扩展, 而lab3之所以看上去和lab1相同是因为第一行(row=0)的大小已经被lab1扩展了5个像素,所以lab3想当与一个小盒子放在大盒子里居中放置,看上去和lab1相同。

2. tkinter中Text的动态显示问题:

tkinter中的Text组件能够显示文本,我在做自然语言处理相关软件时经常用到,在这我之前遇到如何动态显示输出的情况。我的解决方法是使用Text组件的update()方法,因为窗口的刷新需要事件的触发才能刷新,而文本的动态刷新我们只需要把Text对象保存,每次需要插入文本时使用如下的方式来及时更新:

## 格式化输出的字符串
textvar = "Step:%3d,Train_loss:%9g,Train_accuracy: %g" %(itr, loss_train, accuracy_train)
## 插入对应的Text对象中
tebox.insert('insert', textvar+'\n')
插入后及时的更新
tebox.update()

当然,可以使用多线程技术保证windows的mainloop()方法能够一直等待事件的发生,而令一条线程工作的同时实时更新Text组件。

Python tkinter的grid布局及Text动态显示方法

以上这篇Python tkinter的grid布局及Text动态显示方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python爬虫爬验证码实现功能详解
Apr 14 Python
python下如何查询CS反恐精英的服务器信息
Jan 17 Python
python 遍历字符串(含汉字)实例详解
Apr 04 Python
python 中的divmod数字处理函数浅析
Oct 17 Python
python并发2之使用asyncio处理并发
Dec 21 Python
Python和Go语言的区别总结
Feb 20 Python
梅尔倒谱系数(MFCC)实现
Jun 19 Python
Python 日期区间处理 (本周本月上周上月...)
Aug 08 Python
python图的深度优先和广度优先算法实例分析
Oct 26 Python
python 实现一个反向单位矩阵示例
Nov 29 Python
设置jupyter中DataFrame的显示限制方式
Apr 12 Python
python实现简单的井字棋
May 26 Python
对python requests的content和text方法的区别详解
Oct 11 #Python
使用pip发布Python程序的方法步骤
Oct 11 #Python
对python Tkinter Text的用法详解
Oct 11 #Python
python数据批量写入ScrolledText的优化方法
Oct 11 #Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
Oct 11 #Python
python中join()方法介绍
Oct 11 #Python
Python中staticmethod和classmethod的作用与区别
Oct 11 #Python
You might like
抓取并下载CSS中所有图片文件的php代码
2011/09/26 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
PHP编程一定要改掉的5个不良习惯
2020/09/18 PHP
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
2019/05/12 Javascript
JS实现容器模块左右拖动效果
2020/01/14 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
[02:11]2016国际邀请赛中国区预选赛全程回顾
2016/07/01 DOTA
Python列表和元组的定义与使用操作示例
2017/07/26 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
Pycharm简单使用教程(入门小结)
2019/07/04 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
解决Django后台ManyToManyField显示成Object的问题
2019/08/09 Python
利用python实现周期财务统计可视化
2019/08/25 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
Python中私有属性的定义方式
2020/03/05 Python
python实现画图工具
2020/08/27 Python
Lee牛仔裤澳大利亚官网:美国著名牛仔裤品牌
2017/09/02 全球购物
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
超市促销活动方案
2014/03/05 职场文书
委托书模板
2014/04/04 职场文书
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
企业读书活动总结
2014/06/30 职场文书
社区护士演讲稿
2014/08/27 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
业务内勤岗位职责
2015/04/13 职场文书
学校捐款活动总结
2015/05/09 职场文书
800字作文之大雪
2019/12/04 职场文书
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers