详解python3中tkinter知识点


Posted in Python onJune 21, 2018
#导入tkinter模块,以及导入ttk模块,tkinter是python结合tk的标准接口,ttk是TK8.5之后加入的“主题化工具包”
from tkinter import *
from tkinter import ttk

#定义的计算函数,完成英尺到米的换算
def calculate(*args):
  try:
    value = float(feet.get())
    meters.set((0.3048 * value * 10000.0 + 0.5)/10000.0)
  except ValueError:
    pass

'''
创建了一个主窗口;
主窗口标题为:“Free to Meters”
通过ttk.Frame创建了一个框架容器;所以界面内容都放在框架中,并把框架放在主窗口root中;
通过grid指定框架的位置,以及对齐方式:sticky说明使用罗盘式方位,控件将要如何在网格单元格里排放(NWES分别表示上左右下);
columnconfigure方法告诉tk自适应宽度;
rowconfigure方法告诉tk自适应高度
'''
root = Tk()
root.title("Feet to Meters")
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)

feet = StringVar()
meters = StringVar()

feet_entry = ttk.Entry(mainframe, width=7, textvariable=feet)
feet_entry.grid(column=2, row=1, sticky=(W, E))

ttk.Label(mainframe, textvariable=meters).grid(column=2, row=2, sticky=(W, E))
ttk.Button(mainframe, text="Calculate", command=calculate).grid(column=3, row=3, sticky=W)

ttk.Label(mainframe, text="feet").grid(column=3, row=1, sticky=W)
ttk.Label(mainframe, text="is equivalent to").grid(column=1, row=2, sticky=E)
ttk.Label(mainframe, text="meters").grid(column=3, row=2, sticky=W)

'''
检查框架内的所有控件,并在每个控件之间增加一点距离,使他们看起来没那么拥挤;
告诉tk把注意力转移到我们的输入框上;也就是说在开始的时候,光标默认会在输入框,当用户输入的时候不需要去单击
告诉tk用户按下了回车键和单击计算按钮是一样的,会调用计算程序段
'''
for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
feet_entry.focus()
root.bind('<Return>', calculate)

#tk让他的事件循环,这样才能让所有的事件运行
root.mainloop()

忘记了什么?

这里还有一些值得检查而我们没有在Tk程序中包括的。例如:

  • ·我们没有考虑当事件改变时重绘界面
  • ·我们没有考虑评价发送事件消息,捕获监测,或者在每个空间上处理事件
  • ·在创建控件的时候,我们没有提供更多的选项;默认看起来已经关注了很多事情,并且我们仅仅改变了按钮上的显示文本。
  • ·我们没有写复杂的代码来获取和设定简单控件的值,我们仅仅把它们链接到变量
  • ·我们没有考虑当用户关闭窗口或者改变窗口大小后会发生什么
  • ·我们没有写额外的代码让它能够跨平台工作
Python 相关文章推荐
pyqt4教程之实现半透明的天气预报界面示例
Mar 02 Python
Python中多线程thread与threading的实现方法
Aug 18 Python
python实现简单socket通信的方法
Apr 19 Python
Python实现类似jQuery使用中的链式调用的示例
Jun 16 Python
Python实现返回数组中第i小元素的方法示例
Dec 04 Python
Python中XlsxWriter模块简介与用法分析
Apr 24 Python
详解python 注释、变量、类型
Aug 10 Python
Python 分享10个PyCharm技巧
Jul 13 Python
在tensorflow中实现去除不足一个batch的数据
Jan 20 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
Mar 02 Python
pytorch 中autograd.grad()函数的用法说明
May 12 Python
OpenCV全景图像拼接的实现示例
Jun 05 Python
Python3用tkinter和PIL实现看图工具
Jun 21 #Python
Python3.4 tkinter,PIL图片转换
Jun 21 #Python
Python3实现转换Image图片格式
Jun 21 #Python
python3实现域名查询和whois查询功能
Jun 21 #Python
解决python写入mysql中datetime类型遇到的问题
Jun 21 #Python
详解Python下ftp上传文件linux服务器
Jun 21 #Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 #Python
You might like
PHP的5个安全措施小结
2012/07/17 PHP
基于Linux调试工具strace与gdb的常用命令总结
2013/06/03 PHP
php实现执行某一操作时弹出确认、取消对话框
2013/12/30 PHP
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
java模拟PHP的pack和unpack类
2016/04/13 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
新发现一个骗链接的方法(js读取cookies)
2012/01/11 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
JavaScript window.location对象
2014/11/14 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
2016/05/18 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
vue自定义全局共用函数详解
2018/09/18 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
探究数组排序提升Python程序的循环的运行效率的原因
2015/04/01 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
在python中利用opencv简单做图片比对的方法
2019/01/24 Python
解决python测试opencv时imread导致的错误问题
2019/01/26 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
浅谈Django前端后端值传递问题
2020/07/15 Python
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
法律顾问服务方案
2014/05/15 职场文书
商家认证委托书格式
2014/10/16 职场文书
捐款仪式主持词
2015/07/04 职场文书
2015年学校医务室工作总结
2015/07/20 职场文书
家属联谊会致辞
2015/07/31 职场文书
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
2021/05/06 MySQL