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!的更多相关文章

  1. [Java 教程 01] Hello,Java!

    前言 从事编程已经有一段时间了,突然发现,Java作为我的第一编程语言,自己似乎对她并有一个系统的思想.当下Java依旧保持着超高的热度,新特性也不断出现,从当初学习的java6版本到最近刚出的jav ...

  2. 2018 最新注册码【激活码】、在线激活 pycharm 完整方法(亲测有效)【2018.06.01 重大更新!!!!】

    2018-06-01修改如下: 原来方法的第二种还是有效的,操作如下 (1)更新hosts文件(可以直接下载,然后解压缩) host文件地址 hosts文件,在windows中的地址为: 替换host ...

  3. COGS 68. [NOIP2005] 采药【01背包复习】

    68. [NOIP2005] 采药 ★   输入文件:medic.in   输出文件:medic.out   简单对比 时间限制:1 s   内存限制:128 MB [问题描述] 辰辰是个天资聪颖的孩 ...

  4. 51nod 1295 XOR key 可持久化01字典树

    题意 给出一个长度为\(n\)的正整数数组\(a\),再给出\(q\)个询问,每次询问给出3个数,\(L,R,X(L<=R)\).求\(a[L]\)至\(a[R]\)这\(R-L+1\)个数中, ...

  5. Unity3D–RectTransfrom 记录笔记

    一.基本要点 部分来源:http://www.2fz1.com/post/unity-ugui-recttransform/ RectTransform继承于Trasnfrom , 在Trasnfor ...

  6. Java多线程文件下载

    一. 多线程下载文件考虑处理步骤: 1. 如何获取文件的长度 2. 合理的创建线程数量,并计算每一个线程下载的长度 3. 如何将多个线程下载的字节写入到文件中 二. 代码实现如下: package c ...

  7. 让用VS2012/VS2013编写的程序在XP中顺利运行

    转自:http://blog.csdn.net/asanscape/article/details/38752655/ 微软为了推销自家平台,默认配置下VS2012和VS2013编写的应用程序只能在V ...

  8. Shell脚本编程的常识

    (这些往往是经常用到,但是各种网络上的材料都语焉不详的东西,个人认为比较有用) 七种文件类型 d            目录                                       ...

  9. linux awk浅析(转)

    Awk 是一种非常好的语言,同时有一个非常奇怪的名称.在本系列(共三篇文章)的第一篇文章中,Daniel Robbins 将使您迅速掌握 awk 编程技巧.随着本系列的进展,将讨论更高级的主题,最后将 ...

随机推荐

  1. MySQL.ERROR 1133 (42000): Can't find any matching row in the user table

    ERROR 1133 (42000): Can't find any matching row in the user table 今天在执行  grant all privileges on cac ...

  2. .net中ashx文件有什么用?功能有那些,一般用在什么情况下?

    .ashx是“一般处理文件”.和aspx类似.但是这种文件要比aspx这种前台页面文件内容简单轻巧..ashx不提供前台展示的功能.也可以说它结合了.cs类文件而且又可以提供给.aspx文件做UI层的 ...

  3. oauth2.0+app方式 webgis 授权

    .认证方式有三种 Oauth2.0, Token-based http/windows 二.用户登录与应用登录区别 两者区别在于:当用户登录时,服务器端平台是否直接识别登录信息和验证登录信息. 应用登 ...

  4. [4]Windows内核情景分析---内核对象

    写过Windows应用程序的朋友都常常听说"内核对象"."句柄"等术语却无从得知他们的内核实现到底是怎样的, 本篇文章就揭开这些技术的神秘面纱. 常见的内核对象 ...

  5. 43. Multiply Strings (大数乘法)

    DescriptionHintsSubmissionsDiscussSolution   Pick One Given two non-negative integers num1 and num2  ...

  6. python 正则基本方法

    2017-04-11 学习python,免不了应对爬虫,初学爬虫最难理解的就是正则表达式. 比如我们要爬去网页上的某些内容,就像下面这种形式: <p>safdsf</p>< ...

  7. 33网络通信之Epoll模型

    多路复用并发模型  -- epoll 监控事件 events EPOLLIN                  fd可读 EPOLLOUT              fd可写 EPOLLPRI     ...

  8. php ci nginx 伪静态rewrite配置方法

    php ci nginx 伪静态rewrite配置方法 location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$ ...

  9. 什么是 shell

     shell 在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器).它类似于DOS下的command.com和后来的cmd.exe.它接收用户命令,然后调 ...

  10. js my_first

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...