详解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 相关文章推荐
Python程序设计入门(5)类的使用简介
Jun 16 Python
Django框架中render_to_response()函数的使用方法
Jul 16 Python
python 调用HBase的简单实例
Dec 18 Python
Python利用matplotlib生成图片背景及图例透明的效果
Apr 27 Python
Python 多进程和数据传递的理解
Oct 09 Python
Python实现发送与接收邮件的方法详解
Mar 28 Python
Python实现点阵字体读取与转换的方法
Jan 29 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
Python通过递归函数输出嵌套列表元素
Oct 15 Python
python用tkinter实现一个gui的翻译工具
Oct 26 Python
PyQt5通过信号实现MVC的示例
Feb 06 Python
一篇文章带你了解Python和Java的正则表达式对比
Sep 15 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利用COM对象访问SQLServer、Access
2006/10/09 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
php中in_array函数用法分析
2014/11/15 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
jQuery 属性选择器element[herf*='value']使用示例
2013/10/20 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
通过jquery 获取URL参数并进行转码
2014/08/18 Javascript
Jquery中扩展方法extend使用技巧
2014/08/24 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
2017/03/27 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
vue better-scroll插件使用详解
2018/01/25 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
如何高效使用Python字典的方法详解
2017/08/31 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
python实现udp传输图片功能
2020/03/20 Python
土耳其时尚潮流在线购物网站:Trendyol
2017/10/10 全球购物
印尼综合在线预订网站:Tiket.com(机票、酒店、火车、租车和娱乐)
2018/10/11 全球购物
医学类导师推荐信范文
2013/11/19 职场文书
交通法规咨询中心工作职责
2013/11/27 职场文书
总经理秘书岗位职责
2014/03/17 职场文书
临床医学生职业规划书范文
2014/10/25 职场文书
党员个人党性分析材料
2014/12/18 职场文书
政协委员个人总结
2015/03/03 职场文书
公诉意见书范文
2015/06/05 职场文书
MySQL GRANT用户授权的实现
2021/06/18 MySQL
SQL Server内存机制浅探
2022/04/06 SQL Server