哲思官方群认证群组  - 讨论区

标题:[zeuux-press] 新增模块篇PCS217-->Tkinter 模块

2008年11月04日 星期二 08:31

Jianjun Kong kongjianjun在gmail.com
星期二 十一月 4 08:31:08 CST 2008

On Sun, Nov 02, 2008 at 09:43:59PM +0800, Jianjun Kong wrote:
>On Sun, Nov 02, 2008 at 01:20:57PM +0800, PGP__GH wrote:
>>刚刚修改了一下,在帮忙看看!
>
>== Tkinter 编程 ==
>	Tkinter是Python中的一种比较流行的图形编程接口。Tkinter模块("TK接口")是Python的标准Tk GUI工具包的接口。TK和Tkinter是为数不多的跨平台的脚本图形界面接口,被应用在多个系统中,如Unix、Windows和Macintosh系统。
>	Tkinter包含了若干模块. Tk接口被封装在一个名为 _tkinter二进制模块里( tkinter 的早期版本). 这个模块包含了Tk的低级接口,因而它不会被程序员直接应用.它通常表现为一个共享库(或DLL文件),通过Tkinter.py来使用,但在一些版本中它与Python解释器结合在一起。
>	Tkinter中的GUI总是有一个root窗口,不管你是主动或者被动获得.主窗口就是程序开始运行的时候创建的,在主窗口中你通常是放置了你主要的部件.另外,Tkinter脚本可以依据需要创建很多独立的窗口,主要的方法就是通过创建Toplevel对象。每一个Toplevel对象都创建一个显示的窗口,不需要通过mainloop方法调用。
>在Tkinter编程中应注意的问题:
>	在Tk接口的附加模块中,Tkinter包含了一些Python模块,保存在标准库的一个子目录里,称为 tkinter。 其中有两个重要的模块,一个是Tkinter本身,另一个叫做Tkconstants:前者自动导入后者,所以你如果使用Tkinter,仅仅导入一个模块就可以
>	    import Tkinter
>或者
>	    from Tkinter import *
>
>那么让我们来体验一下Tkinter的图形设计的魅力吧。
>
>下来我们就来编写一个最常见的程序“Hello,world”。
>
>#filename: pcs-217-1.py
>
>#coding:utf-8
>from Tkinter import *
>#导入Tkinter模块
>root = Tk()
>#创建一个root Widget
>w = Label(root,text = "Hello,world!")
>#w是root的子窗口,而text是w的一个选项,表示w中要显示的内容
>w.pack()
>#在pack后,计算好Label的大小,最终显示在屏幕上
>root.mainloop()
>#mainloop()除里内部的widget的更新,和来自Windows Manager的通信
>
>运行程序:
>~$ python pcs-217-1.py
>
>截图:
>
>当然,对于上面这样的小程序,我们可以直接将其写在一个文件里。但是对于一个较大的程序,最好将它写在一个类中,如下:
>
>#filename: pcs-217-2.py
>
>#coding:utf-8
>from Tkinter import *
>class App:
>    def __init__(self, master):
>        #Frame widget
>        frame = Frame(master)
>        frame.pack()
>      
>        self.button = Button ( frame, # master widget
>                               text="QUIT",
>                               fg="red",
>                               command=frame.quit
>                               )
>        self.button.pack(side=LEFT)
>        self.hi_there = Button(frame,
>                               text="Hello",
>                               command=self.say_hi
>                               )
>        self.hi_there.pack(side=LEFT)
>    def say_hi(self):
>        print "Welcome to the world of Python!"
>root = Tk()
>app = App(root)
>root.mainloop()
>
>运行程序:
>~$ python pcs-217-2.py
>
>如果你按"hello"的按钮,会在控制台上打印"Welcome to the world of Python!"
>截图:
>
>在图形设计过程,经常会涉及到一些布局的美化和合理放置,从而使用户看起来效果会更友好。为了解决这个问题,在Tkinter中引入了这样一个概念。
>Geometry Manager(几何管理器)
>
>Tk提供了几个Geometry Manager,主要是为了帮助开发者完成在布局中的widget的放置。
>一般Tk有三种几何管理器:
>Pack 
>Grid
>Place
>着重介绍一下Pack管理器
>Pack管理器的使用方法很简单 w.pack(options),其中,w是一个widget。常用的options有:
>side  表示把w放在那个边上,可以是TOP,BOTTOM,LEFT,RIGHT
>padx和pady 表示parcel的每一个边和w之间预留的空间
>ipadx和ipady  表示w的每一个边和w内包含的内容之间的预留的空间,w会因此变大
>fill 可以是None,x,y,both。如果parcel太大了,那就会根据fill的值来增加子窗口的大小: 
>None :表示维持子窗口原来的大小
>X   : 表示只扩大子窗口的宽度
>Y   : 表示只扩大子窗口的高度
>BOTH :表示同时扩大子窗口的宽度和高度
>值得注意的是,fill是指子窗口的大小和parcel的大小的关系。决定子窗口怎样改变自己的大小,来适应parcel的大小。
>
>思考:
>在利用Tkinter来设计图形界面时,如果不使用root(),会出现什么结果?

-----------------
请大家看看,上面的内容,是否可以添加到LovPy当中,这是审校成员GaoHui写的。
如果可以,代码格式等细节我帮他搞定。

昨天和lisa编辑,沟通了一下,考虑整书的内容相关性,后面不再添加这种模块。而是继续作校对 ;)

-- 
Jianjun Kong @_@ Happy Hacking
Homepage: http://kongove.cn/
Gtalk: kongjianjun在gmail.com

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-press]

2008年11月04日 星期二 08:52

Zoom.Quiet zoom.quiet在gmail.com
星期二 十一月 4 08:52:01 CST 2008

2008/11/4 Jianjun Kong <kongjianjun at gmail.com>:
>>>刚刚修改了一下,在帮忙看看!
>>
>>== Tkinter 编程 ==

这是个非常实用的部分,可以同 CDayN 中的桌面化结合引用,
不过,PCS 是有描述层次的,
从 概述到一般使用,到高级使用,到最后的常见问题解决, 是要求在精简的篇幅中,完整的对某一方面的基础知识进行完备简介的!

Tkinter 也是常用库,建议:
+ 增补高级使用中,创建一个CDays 的简易前端,代码小于50行,完成 Comment 界面的所有功能
+ 增补Tkinter 的中文处理技巧,在问题一节,,,
提醒,理解和使用 PCS 的模板!

以上! 校对团队非常勤劳哪!敬佩!
不过,可以将团队分成不同部分,同步进行校对,和增补哪,,,

>>       Tkinter是Python中的一种比较流行的图形编程接口。Tkinter模块("TK接口")是Python的标准Tk GUI工具包的接口。TK和Tkinter是为数不多的跨平台的脚本图形界面接口,被应用在多个系统中,如Unix、Windows和Macintosh系统。
>>       Tkinter包含了若干模块. Tk接口被封装在一个名为 _tkinter二进制模块里( tkinter 的早期版本). 这个模块包含了Tk的低级接口,因而它不会被程序员直接应用.它通常表现为一个共享库(或DLL文件),通过Tkinter.py来使用,但在一些版本中它与Python解释器结合在一起。
>>       Tkinter中的GUI总是有一个root窗口,不管你是主动或者被动获得.主窗口就是程序开始运行的时候创建的,在主窗口中你通常是放置了你主要的部件.另外,Tkinter脚本可以依据需要创建很多独立的窗口,主要的方法就是通过创建Toplevel对象。每一个Toplevel对象都创建一个显示的窗口,不需要通过mainloop方法调用。
>>在Tkinter编程中应注意的问题:
>>       在Tk接口的附加模块中,Tkinter包含了一些Python模块,保存在标准库的一个子目录里,称为 tkinter。 其中有两个重要的模块,一个是Tkinter本身,另一个叫做Tkconstants:前者自动导入后者,所以你如果使用Tkinter,仅仅导入一个模块就可以
>>           import Tkinter
>>或者
>>           from Tkinter import *
>>
>>那么让我们来体验一下Tkinter的图形设计的魅力吧。
>>
>>下来我们就来编写一个最常见的程序"Hello,world"。
>>
>>#filename: pcs-217-1.py
>>
>>#coding:utf-8
>>from Tkinter import *
>>#导入Tkinter模块
>>root = Tk()
>>#创建一个root Widget
>>w = Label(root,text = "Hello,world!")
>>#w是root的子窗口,而text是w的一个选项,表示w中要显示的内容
>>w.pack()
>>#在pack后,计算好Label的大小,最终显示在屏幕上
>>root.mainloop()
>>#mainloop()除里内部的widget的更新,和来自Windows Manager的通信
>>
>>运行程序:
>>~$ python pcs-217-1.py
>>
>>截图:
>>
>>当然,对于上面这样的小程序,我们可以直接将其写在一个文件里。但是对于一个较大的程序,最好将它写在一个类中,如下:
>>
>>#filename: pcs-217-2.py
>>
>>#coding:utf-8
>>from Tkinter import *
>>class App:
>>    def __init__(self, master):
>>        #Frame widget
>>        frame = Frame(master)
>>        frame.pack()
>>
>>        self.button = Button ( frame, # master widget
>>                               text="QUIT",
>>                               fg="red",
>>                               command=frame.quit
>>                               )
>>        self.button.pack(side=LEFT)
>>        self.hi_there = Button(frame,
>>                               text="Hello",
>>                               command=self.say_hi
>>                               )
>>        self.hi_there.pack(side=LEFT)
>>    def say_hi(self):
>>        print "Welcome to the world of Python!"
>>root = Tk()
>>app = App(root)
>>root.mainloop()
>>
>>运行程序:
>>~$ python pcs-217-2.py
>>
>>如果你按"hello"的按钮,会在控制台上打印"Welcome to the world of Python!"
>>截图:
>>
>>在图形设计过程,经常会涉及到一些布局的美化和合理放置,从而使用户看起来效果会更友好。为了解决这个问题,在Tkinter中引入了这样一个概念。
>>Geometry Manager(几何管理器)
>>
>>Tk提供了几个Geometry Manager,主要是为了帮助开发者完成在布局中的widget的放置。
>>一般Tk有三种几何管理器:
>>Pack
>>Grid
>>Place
>>着重介绍一下Pack管理器
>>Pack管理器的使用方法很简单 w.pack(options),其中,w是一个widget。常用的options有:
>>side  表示把w放在那个边上,可以是TOP,BOTTOM,LEFT,RIGHT
>>padx和pady 表示parcel的每一个边和w之间预留的空间
>>ipadx和ipady  表示w的每一个边和w内包含的内容之间的预留的空间,w会因此变大
>>fill 可以是None,x,y,both。如果parcel太大了,那就会根据fill的值来增加子窗口的大小:
>>None :表示维持子窗口原来的大小
>>X   : 表示只扩大子窗口的宽度
>>Y   : 表示只扩大子窗口的高度
>>BOTH :表示同时扩大子窗口的宽度和高度
>>值得注意的是,fill是指子窗口的大小和parcel的大小的关系。决定子窗口怎样改变自己的大小,来适应parcel的大小。
>>
>>思考:
>>在利用Tkinter来设计图形界面时,如果不使用root(),会出现什么结果?
>
> -----------------
> 请大家看看,上面的内容,是否可以添加到LovPy当中,这是审校成员GaoHui写的。
> 如果可以,代码格式等细节我帮他搞定。
>
> 昨天和lisa编辑,沟通了一下,考虑整书的内容相关性,后面不再添加这种模块。而是继续作校对 ;)
>



-- 
http://zoomquiet.org'''
过程改进乃是催生可促生靠谱的人的组织!
PE keeps evolving organizations which promoting people be good!'''
[HR]金山软件常年招聘大量Py/C++人才!
https://groups.google.com/group/python-cn/web/ot-py-c
简历直投俺就好;-)

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-press]

2008年11月04日 星期二 09:54

Jianjun Kong kongjianjun在gmail.com
星期二 十一月 4 09:54:39 CST 2008

On Tue, Nov 04, 2008 at 08:52:01AM +0800, Zoom.Quiet wrote:
>2008/11/4 Jianjun Kong <kongjianjun在gmail.com>:
>>>>刚刚修改了一下,在帮忙看看!
>>>
>>>== Tkinter 编程 ==
>
>这是个非常实用的部分,可以同 CDayN 中的桌面化结合引用,
>不过,PCS 是有描述层次的,
>从 概述到一般使用,到高级使用,到最后的常见问题解决, 是要求在精简的篇幅中,完整的对某一方面的基础知识进行完备简介的!
>
>Tkinter 也是常用库,建议:
>+ 增补高级使用中,创建一个CDays 的简易前端,代码小于50行,完成 Comment 界面的所有功能
>+ 增补Tkinter 的中文处理技巧,在问题一节,,,
>提醒,理解和使用 PCS 的模板!

ACK.

>以上! 校对团队非常勤劳哪!敬佩!
>不过,可以将团队分成不同部分,同步进行校对,和增补哪,,,

OK.

....

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-press]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号