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函数就可让组件树显示在屏幕上。

几何管理器

  

    

猜你喜欢

转载自www.cnblogs.com/start20180703/p/10341940.html