详解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实现简单状态框架的方法
Mar 19 Python
python实现在控制台输入密码不显示的方法
Jul 02 Python
pycharm中连接mysql数据库的步骤详解
May 02 Python
python中WSGI是什么,Python应用WSGI详解
Nov 24 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
python实现决策树分类(2)
Aug 30 Python
python判断计算机是否有网络连接的实例
Dec 15 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
Dec 18 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
django 多数据库及分库实现方式
Apr 01 Python
keras多显卡训练方式
Jun 10 Python
Python中使用Selenium环境安装的方法步骤
Feb 22 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
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
PHP实现的数独求解问题示例
2017/04/18 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
jQuery中filter(),not(),split()使用方法
2010/07/06 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
2014/10/16 Javascript
JavaScript实现向右伸出的多级网页菜单效果
2015/08/25 Javascript
易被忽视的js事件问题总结
2016/05/14 Javascript
微信小程序 参数传递实例代码
2017/03/20 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
详解vue组件基础
2018/05/04 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
jquery登录的异步验证操作示例
2019/05/09 jQuery
JsonProperty 的使用方法详解
2019/10/11 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
2019/11/07 Javascript
python cookielib 登录人人网的实现代码
2012/12/19 Python
星球大战与Python之间的那些事
2016/01/07 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
CSS3实现精美横向滚动菜单按钮
2017/04/14 HTML / CSS
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
介绍一些UNIX常用简单命令
2014/11/11 面试题
班主任经验交流会主持词
2014/04/01 职场文书
副董事长岗位职责
2014/04/02 职场文书
2014年教师节座谈会发言稿
2014/09/10 职场文书
公司党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
委托公证书样本
2015/01/23 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
Python PIL按比例裁剪图片
2022/05/11 Python