很简单。你把鼠标一个按上会变成手型。或者你在知乎回答问题的文本框里输入文字。甚至你看到的电脑屏幕内容。看上去是动态的。其实和动画电影原理差不多。

现在你鼠标的移动,键盘的按键。都是实实在在输入。这里我们叫做事件。譬如有鼠标移动事件,单击事件,F5按下的事件。

以回答问题 按钮<发布回答>左侧的匿名勾选框为例。你单击一次,就绿色小勾表示选中。再单击就去掉了小勾。现在你这样想。实际上有两幅图(有勾和无勾的)。你单击鼠标移动鼠标就触发了事件,会把你鼠标的坐标和单击这个行为捕获。那假设你单击了,鼠标坐标又在那个框框区域内,我们就把一张图用另外一张图代替,同时后台表示是否匿名的某个变量取反。

root到root.pack()之间,无非就是设计你的部件的类型,尺寸,样式,位置,然后绑定一个事件。

mainloop就进入到事件(消息)循环。一旦检测到事件,就刷新组件。譬如你输入一个字符,就要立即在光标那个位置显示出来(前提是你选中了文本框,也就是鼠标在文本框这个图案的范围内单击过)。又譬如你点了首页这个按钮(就是在这个图形的区域附近单击)那么就要清除你浏览器里的全部部件,然后重新绘制(按照主页设计的布局和内容)。

再给你打个比方。你设计的程序中间有个按钮,你设计的时候就要把一个按钮放到中间去。这个按钮有一个属性(假设和变量x关联,x表示按钮上文字的颜色,如果是1就黑色,0就灰色)。你按一下按钮,文字颜色就会切换。root到root.pack()你就相当于在那里放按钮(其实按钮就是多幅图,某一时刻显示其中一张),具体颜色看x取值。现在到了mainloop。一旦有事件,就又在那里放按钮(不妨直接覆盖原来的图)。所以在那个位置单击鼠标才是触发某个你想要的程序行为的要素,那个按钮的刷新,不过是其中一项程序行为。有没有按钮你都可以点击那个区域触发。但是除了设计者,谁知道呢?无法是视觉效果罢了。

PS:如果你知道连环画,你可以理解为,每个部件都是连环画。root到root.pack()就是你设计连环画。mainloop就是去翻它!实际上不是有很多程序有一个选项就是 动画效果么,关闭可以减少资源消耗。无非就是连环画的页数多。快速翻阅就有动感。如果只有两页,看上去很唐突而已。

pps:前面也说了,你看到电脑屏幕也是如此,是不停在刷新的。一般是50-60hz每秒。游戏里不有一个fps么,桢率 就是画面的刷新频率,太慢不就会卡顿么(和网络卡不是一回事)。然后屏幕还有局部刷新的技术,不一定每次都刷新整块屏幕。设计的程序也是。你可以所有组件每次事件都重新画。也可以只是画你需要的部分。

python mainloop作用_Tkinter中的mainloop应该如何理解?相关推荐

  1. python中mainloop什么意思_Tkinter中的mainloop应该如何理解?

    很简单.你把鼠标一个按上会变成手型.或者你在知乎回答问题的文本框里输入文字.甚至你看到的电脑屏幕内容.看上去是动态的.其实和动画电影原理差不多. 现在你鼠标的移动,键盘的按键.都是实实在在输入.这里我 ...

  2. python mainloop函数_python中的mainloop()函数

    根据你的评论,我能更好地理解你的问题.如果这是你要找的,请告诉我:import tkinter as tk class HelloWorld(tk.Tk): def __init__(self): t ...

  3. python tkinter手册_tkinter 中文文档

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! __author__=python importtkinterastk clas ...

  4. python property作用_python中@property的作用和getter setter的解释

    @property作用: python的@property是python的一种装饰器,是用来修饰方法的. 我们可以使用@property装饰器来创建只读属性,@property装饰器会将方法转换为相同 ...

  5. mysql null的作用_MySQL中对于NULL值的理解和使用教程

    NULL值的概念是造成SQL的新手的混淆的普遍原因,他们经常认为NULL是和一个空字符串''的一样的东西.不是这样的!例如,下列语句是完全不同的: ?12mysql>INSERT INTO my ...

  6. pause容器作用_kubernetes中的Pause容器如何理解?

    前几篇文章都是讲的Kubernetes集群和相关组件的部署,但是部署只是入门的第一步,得理解其中的一些知识才行.今天给大家分享下Kubernets的pause容器的作用. Pause容器 全称infr ...

  7. java中generics的作用,java中泛型(Generics)的一些理解

    public class Point { // //    public Point(T x) { //        this.x = x; //    } private T x; private ...

  8. python中括号的作用_python中中括号

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 在python语言中最常见的括号有三种,分别是:小括号().中括号:代表list ...

  9. python wraps模块_python中 wraps 的作用

    这里使用两段代码比较加入wraps装饰器后,函数打印的结果对比: 新建文件名:Testword 代码1:不加wraps装饰器 # coding=utf-8 from functools import ...

最新文章

  1. oracle多种导入导出数据方法
  2. SAP MM 影响Vendor主数据维护界面的字段选择的四大因素?
  3. 如何判断对象是否存活之根搜索算法
  4. 修改内核配置解决busybox的mdev -s启动速度慢的问题
  5. Java NIO框架Mina、Netty、Grizzly介绍与对比(zz)
  6. Android应用程序启动过程源代码分析(5)
  7. 导出域控中不活动的计算机_满满干货丨小薇和你聊聊计算机二级的那些事儿
  8. 【渝粤教育】国家开放大学2018年春季 8636-22T实用心理学 参考试题
  9. pycharm关闭/开启代码补全/代码提示
  10. Mysql——数据查询
  11. linux中ps-p,linux下ps命令
  12. IIS7.5 的虚拟账户
  13. [附源码]计算机毕业设计JAVAjsp教学辅助系统
  14. 【Lilishop商城】No4-1.业务逻辑的代码开发,涉及到:会员B端第三方登录使用及后端接口(微信、QQ等)
  15. 计算机毕业设计Java联想搜索爬虫设计
  16. 华为云计算IE面试笔记-桌面云用户登录连接流程及故障处理
  17. 恶意软件NOKKI和朝鲜“Group123”APT组织关联的最新证据
  18. 统计字符串中所包含的各个英文小写字符及其对应的数量。
  19. Linux系列---搭建单机模式的ES
  20. 数据科学必备Pandas冷门却超级实用的技巧

热门文章

  1. vmware 网络连接方式的说明
  2. 电脑win7语音怎么测试软件,win7话筒怎么测试 win7话筒测试方法【图文】
  3. python考试题目及答案-这就是你需要的python99道练习题(附答案)
  4. python自动化办公教程-python办公自动化:Excel操作入门
  5. python培训价目表-Python培训一般要多少钱?
  6. python简单程序实例-Python简单基础小程序的实例代码
  7. 一文读懂语音语义识别技术的现状与未来
  8. 智能手机的超性能语音识别技术简介
  9. 知乎热议的Deep Peak2模型究竟是什么?答案都在这里
  10. webpack2.7.0配置不同的打包环境