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 编程技巧.随着本系列的进展,将讨论更高级的主题,最后将 ...
随机推荐
- Lua class
local _class = {} function class(super) local class_type = {} class_type.ctor = false class_type.sup ...
- mysql主从配置,读写分离
Mysql主从配置,实现读写分离 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库 ...
- css中块级元素、内联元素(行内元素、内嵌元素)
Block element 块级元素 顾名思义就是以块显示的元素,高度宽度都是可以设置的.比如我们常用 的<div>.<p>.<ul>默认状态下都是属于块级元 ...
- 【Linux学习九】负载均衡
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 一.高并发 随着应用访问量的增加,带来高并发处理问题. 具体有两个: ...
- Vim for Windows --ctags
What is ctags? ctags -- Generate tag files for source code,which is a tool used for facilitating rea ...
- ElasticSearch相关文章推荐
1. ElasticSearch查询:http://www.cnblogs.com/ljhdo/p/4486978.html 2. Elasticsearch Java API 的使用—多条件查询:h ...
- <转>jmeter(十六)配置元件之计数器
本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...
- js关于移入移出延迟提示框效果处理
html部分 <div id="div1">我是导航君</div> <div id="div2" style="disp ...
- 怎样从外网访问内网Jupyter Notebook?
本地安装了一个Jupyter Notebook,只能在局域网内访问,怎样从外网也能访问到本地的Jupyter Notebook呢?本文将介绍具体的实现步骤. 准备工作 安装并启动Jupyter Not ...
- no matching editors or conversion strategy found
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionM ...