01 Hello World!
from tkinter import Label#获取组件对象 widget=Label(None,text='Hello GUI world!')#生成
widget.pack()#布置
widget.mainloop()#开始事件循环
这是一个完整的GUI程序,它调用了tkinter模块。
这是一个可以显示在电脑屏幕上、独立、功能化的窗口。它可以被最大化占据整个屏幕,也可以最小化隐藏在系统工具条中,还可以恢复原状。单击窗口右侧的X标志,可以关闭窗口,停止运行程序。
这虽然是一个小例子,却展示出大多数tkinter程序都有的共同步骤:
1、从tkinter模块中加载一个组件类。
2、创建该组件类的实例为标签类。
3、在父组件中打包新标签。
4、调用主循环,显示窗口,同时开始tkinter的事件循环。
mainloop方法最后执行,将标签显示在屏幕,进入tkinter等待状态,准备响应用户发起的GUI事件。在mainloop函数中,tkinter内部会监控这些事件,如键盘活动、鼠标单击等。
只要GUI还出现在屏幕上,mainloop调用就不会返回执行代码。当我们写大型代码时,调用mainloop后唯一的做法就是注册调用管理器来响应事件。(有点不太明白)
这就是事件驱动型编程,它可能是GUI编程最特殊的一个方面。GUI程序都有一组事件处理器,
对于脚本文件中的代码,你需要完成上文中第三步和第四步来显示图形化界面。显示GUI的窗口,需要调用mainloop函数;显示窗口中
的组件,必须将它们pack(或者arranged) 。这样,tkinter的几何管理器就知道响应它们了。如果只有mainloop函数却没有pack函数,则会出现空窗口;有pack函数却没有mainloop,屏幕上什么都不显示,因为代码未进入事件等待状态。当你交互地编写代码时,mainloop函数有时是可选的,但通常都需要。
这段简单的脚本展示了大多数tkinter程序都有的核心概念。
创建组件
第一个参数是父组件对象,我们希望将新标签设置于其中。这里,‘None’表示‘将新标签设置在该程序的默认顶层窗口’。稍后,我们会向该位置传递其他组件的实际位置,并将标签设置在其他组件充当的容器对象内。
第二个参数是标签配置选项,作为一个关键字参数。文本选项通过设定文本字符串,来作为标签的显示信息。大多数组件的构造函数都接受多个关键字参数,对组件的颜色、尺寸、回调函数等进行具体设置。大多数组件的设置针对不同平台,都做了合理的默认设置,因而使得tkinter的创建工作变得简单易行。当你希望做一些自定义设定时,就需要更改这些默认选项。
如我们所见,采用树状结构来建立复杂的GUI界面,父组件参数即是树的根。tkinter的工作原则是:‘所建即所得’。搭建的组件对象树就是希望在屏幕上看到的显示模型,通过调用mainloop函数就可让组件树显示在屏幕上。
几何管理器
01 Hello World!的更多相关文章
- [Java 教程 01] Hello,Java!
前言 从事编程已经有一段时间了,突然发现,Java作为我的第一编程语言,自己似乎对她并有一个系统的思想.当下Java依旧保持着超高的热度,新特性也不断出现,从当初学习的java6版本到最近刚出的jav ...
- 2018 最新注册码【激活码】、在线激活 pycharm 完整方法(亲测有效)【2018.06.01 重大更新!!!!】
2018-06-01修改如下: 原来方法的第二种还是有效的,操作如下 (1)更新hosts文件(可以直接下载,然后解压缩) host文件地址 hosts文件,在windows中的地址为: 替换host ...
- COGS 68. [NOIP2005] 采药【01背包复习】
68. [NOIP2005] 采药 ★ 输入文件:medic.in 输出文件:medic.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] 辰辰是个天资聪颖的孩 ...
- 51nod 1295 XOR key 可持久化01字典树
题意 给出一个长度为\(n\)的正整数数组\(a\),再给出\(q\)个询问,每次询问给出3个数,\(L,R,X(L<=R)\).求\(a[L]\)至\(a[R]\)这\(R-L+1\)个数中, ...
- Unity3D–RectTransfrom 记录笔记
一.基本要点 部分来源:http://www.2fz1.com/post/unity-ugui-recttransform/ RectTransform继承于Trasnfrom , 在Trasnfor ...
- Java多线程文件下载
一. 多线程下载文件考虑处理步骤: 1. 如何获取文件的长度 2. 合理的创建线程数量,并计算每一个线程下载的长度 3. 如何将多个线程下载的字节写入到文件中 二. 代码实现如下: package c ...
- 让用VS2012/VS2013编写的程序在XP中顺利运行
转自:http://blog.csdn.net/asanscape/article/details/38752655/ 微软为了推销自家平台,默认配置下VS2012和VS2013编写的应用程序只能在V ...
- Shell脚本编程的常识
(这些往往是经常用到,但是各种网络上的材料都语焉不详的东西,个人认为比较有用) 七种文件类型 d 目录 ...
- linux awk浅析(转)
Awk 是一种非常好的语言,同时有一个非常奇怪的名称.在本系列(共三篇文章)的第一篇文章中,Daniel Robbins 将使您迅速掌握 awk 编程技巧.随着本系列的进展,将讨论更高级的主题,最后将 ...
随机推荐
- fang99-三号线与四号线新盘
三号线与四号线新盘 http://www.fang99.com/buycenter/buildingsearch_map.aspx?projectid=0000011104 http://www.fa ...
- day1 hbuilder的使用
一.互联网的原理 1.概述 html:用来制作网页. 互联网原理:上网即请求数据. 用户通过在浏览器上输入一个网址,通过HTTP协议向服务器发送请求,服务器做出响应,将相关的网页数据传输到本地计算机, ...
- 类模板中的static关键字
特性: 1.从类模板实例化的每个模板类有自己的类模板数据成员,该模板类的所有对象共享一个static数据成员 2. 和非模板类的static数据成员一样,模板类的static数据成员也应该在文件范围定 ...
- css 扩大点击范围
业务场景:比如某个按钮大小已经固定了,但是需求点击按钮周边就可以触发点击事件. 设置一下before属性里面的height,width就是设置你要点击的范围. rem是css3中新增加的一个单位属性( ...
- Python 连接SQL Server数据库 - pymssql使用基础
1. 官方api http://www.pymssql.org/en/stable/ref/pymssql.html 我学习自这里
- 只打开一次浏览器,生成html测试报告<小紧张中......>
from selenium import webdriverimport unittestimport time class Blog(unittest.TestCase): "" ...
- win10 常用设置 桌面出来计算机图标,固定桌面摆好的图标设置方法,电脑设备ID方法
win10 常用设置 桌面出来计算机图标,固定桌面摆好的图标设置方法 桌面右键-->显示设置-->桌面图标设置 电脑设备ID:xxx查看方法:桌面右键-->显示设置-->关于
- Lucene 个人领悟 (一)
在上学的时候就对搜索有着极大地兴趣,图书馆也借了好多的书看过,也用过Python写过爬虫. 有好多人在初步学习Lucene的时候都以为他是一个搜索引擎,或者搜索工具. 在此我要特别强调一下,Lucen ...
- HDU 2077 汉诺塔IV (递推)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2077 还记得汉诺塔III吗?他的规则是这样的:不允许直接从最左(右)边移到最右(左)边(每次移动一定是 ...
- 文字列大好きいろはちゃんイージー / Iroha Loves Strings (ABC Edition) (优先队列)
题目链接:http://abc042.contest.atcoder.jp/tasks/abc042_b Time limit : 2sec / Memory limit : 256MB Score ...