详解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的绘图工具matplotlib使用实例
Jul 03 Python
Python深入学习之特殊方法与多范式
Aug 31 Python
python获得两个数组交集、并集、差集的方法
Mar 27 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
May 17 Python
Python基础练习之用户登录实现代码分享
Nov 08 Python
Python实现的多进程和多线程功能示例
May 29 Python
python将pandas datarame保存为txt文件的实例
Feb 12 Python
Python Print实现在输出中插入变量的例子
Dec 25 Python
Python 实现训练集、测试集随机划分
Jan 08 Python
jupyter实现重新加载模块
Apr 16 Python
python logging模块的使用详解
Oct 23 Python
Python APScheduler执行使用方法详解
Dec 10 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速度全攻略
2006/10/09 PHP
php 应用程序安全防范技术研究
2009/09/25 PHP
php mysql 封装类实例代码
2016/09/18 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
JavaScript创建类/对象的几种方式概述及实例
2013/05/06 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
js showModalDialog弹出窗口实例详解
2014/01/07 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
详解使用nodeJs安装Vue-cli
2017/05/17 NodeJs
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
python分析apache访问日志脚本分享
2015/02/26 Python
Python编写百度贴吧的简单爬虫
2015/04/02 Python
详解python单例模式与metaclass
2016/01/15 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
2018/01/30 Python
python实现自动解数独小程序
2019/01/21 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
python调用matlab的m自定义函数方法
2019/02/18 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
如何在Windows中安装多个python解释器
2020/06/16 Python
html5教你做炫酷的碎片式图片切换 (canvas)
2017/07/28 HTML / CSS
处理textarea中的换行和空格
2019/12/12 HTML / CSS
Mankind西班牙男士护肤品网站:购买皮肤护理、护发和剃须
2017/04/27 全球购物
Clarisonic美国官网:科莱丽声波洁面仪
2017/10/12 全球购物
母亲追悼会答谢词
2014/01/27 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
公务员个人年终总结
2015/02/12 职场文书
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android