详解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实现数组插入新元素的方法
May 22 Python
浅谈Python Opencv中gamma变换的使用详解
Apr 02 Python
对python产生随机的二维数组实例详解
Dec 13 Python
在python中用print()输出多个格式化参数的方法
Jul 16 Python
python的移位操作实现详解
Aug 21 Python
python求最大公约数和最小公倍数的简单方法
Feb 13 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
Apr 27 Python
Python docutils文档编译过程方法解析
Jun 23 Python
详解python爬取弹幕与数据分析
Nov 14 Python
python 调用Google翻译接口的方法
Dec 09 Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 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中模拟链表和链表的基本操作示例
2016/02/27 PHP
PHP引用的调用方法分析
2016/04/25 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
IE8 中使用加速器(Activities)
2010/05/14 Javascript
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
2012/12/23 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
2015/03/04 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
详解vue-cli 接口代理配置
2017/12/13 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
angularjs获取到My97DatePicker选中的值方法
2018/10/02 Javascript
基于axios 的responseType类型的设置方法
2019/10/29 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
基于js实现判断浏览器类型代码实例
2020/07/17 Javascript
Python队列的定义与使用方法示例
2017/06/24 Python
python学习教程之使用py2exe打包
2017/09/24 Python
Python类super()及私有属性原理解析
2020/06/15 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
类的核心特性有哪些
2014/01/01 面试题
护理中职生求职信范文
2014/02/24 职场文书
初一新生军训方案
2014/05/22 职场文书
售后客服工作职责
2014/06/16 职场文书
中秋节慰问信
2015/02/15 职场文书
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL
Python绘制散乱的点构成的图的方法
2022/04/21 Python