详解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 相关文章推荐
在Lighttpd服务器中运行Django应用的方法
Jul 22 Python
Python构建XML树结构的方法示例
Jun 30 Python
用python编写第一个IDA插件的实例
May 29 Python
Python基于jieba库进行简单分词及词云功能实现方法
Jun 16 Python
Python格式化日期时间操作示例
Jun 28 Python
Python 从列表中取值和取索引的方法
Dec 25 Python
pthon贪吃蛇游戏详细代码
Jan 27 Python
Django时区详解
Jul 24 Python
Python使用enumerate获取迭代元素下标
Feb 03 Python
python输出第n个默尼森数的实现示例
Mar 08 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
Apr 14 Python
两行代码解决Jupyter Notebook中文不能显示的问题
Apr 24 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.MVC的模板标签系统(四)
2006/09/05 PHP
使用PHP数组实现无限分类,不使用数据库,不使用递归.
2006/12/09 PHP
关于PHP中Object对象的笔记分享
2011/06/28 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
2019/04/10 PHP
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
Js四则运算函数代码
2012/07/21 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
2014/01/03 Javascript
node.js中的fs.mkdir方法使用说明
2014/12/17 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
Javascript中的async awai的用法
2017/05/17 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
vue-preview动态获取图片宽高并增加旋转功能的实现
2020/07/29 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
python实现zabbix发送短信脚本
2018/09/17 Python
django Serializer序列化使用方法详解
2018/10/16 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
DataFrame.to_excel多次写入不同Sheet的实例
2019/12/02 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
2020/10/27 Python
详解CSS3 rem(设置字体大小) 教程
2017/11/21 HTML / CSS
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
什么是Smart Navigation?
2016/07/03 面试题
党员承诺书范文
2014/05/19 职场文书
班级体育活动总结
2014/07/05 职场文书
企业领导对照检查材料
2014/08/20 职场文书
小学德育工作总结2015
2015/05/12 职场文书
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers