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 相关文章推荐
Pyhton中防止SQL注入的方法
Feb 05 Python
Python fileinput模块使用实例
Jun 03 Python
简单谈谈python的反射机制
Jun 28 Python
Python解析Excle文件中的数据方法
Oct 23 Python
Python Pandas 箱线图的实现
Jul 23 Python
python 实现检验33品种数据是否是正态分布
Dec 09 Python
pytorch点乘与叉乘示例讲解
Dec 27 Python
python实现简单的购物程序代码实例
Mar 03 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
Mar 09 Python
Python实现获取当前目录下文件名代码详解
Mar 10 Python
完美解决python针对hdfs上传和下载的问题
Jun 05 Python
python标准库ElementTree处理xml
May 20 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
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
PHP中new static() 和 new self() 的区别介绍
2015/01/09 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
PDO操作MySQL的基础教程(推荐)
2017/08/18 PHP
php生成word并下载代码实例
2019/03/15 PHP
关于实现代码语法标亮 dp.SyntaxHighlighter
2007/02/02 Javascript
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
新老版本juqery获取radio对象的方法
2010/03/01 Javascript
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
2013/04/02 Javascript
html页面显示年月日时分秒和星期几的两种方式
2013/08/20 Javascript
jquery ajax 局部刷新小案例
2014/02/08 Javascript
理解javascript正则表达式
2016/03/08 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
vue-router实现编程式导航的代码实例
2019/01/19 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
webpack HappyPack实战详解
2019/10/08 Javascript
Python计算回文数的方法
2015/03/11 Python
基于Python实现用户管理系统
2019/02/26 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
英国家庭、花园、汽车和移动解决方案:Easylife Group
2018/05/23 全球购物
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
《陶罐和铁罐》教学反思
2014/02/19 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
汽车转让协议书范本
2014/12/07 职场文书
岳麓书院导游词
2015/02/03 职场文书
业务员辞职信范文
2015/03/02 职场文书
九年级历史教学反思
2016/02/19 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书