Python的学习已经有一段时间了,从简单的到逐渐深入。近几日再看与GUI有关的东西。Python提供了多种写GUI的选择。包括wxpython,Tkinter,Qt,Pygame等。
今天主要写一些Tkinter的学习笔记。网上有一本不错的书叫做An Introducion to Tkinter,是由Fredrik Lundh写的。Tkinter的学习并不完善,主要还是从ThinkPython上学的。从ThinkPython上有一个叫做Swampy的模块,作者写了一个Gui.py的模块。
以下几行代码会简单的生成一个界面:

有了这个界面,我们之后的工作就是向其添加一些widgets。包括:Button、Canvas、Entry、Scrollbar、Frame等。Button就是按钮。Canvas是用来显示线条、矩形、圆圈和其他的形状。Entry是用来显示文本的地方。Scrollbar是用来控制Widget的显示。Frame用来对Widget进行简单的布局。
按钮
在作者的model中,按钮的调用用一下语句:

在界面中建立一个标签的代码:

按钮出发后需要执行一个触发的事件:

完整的按钮加事件代码如下:

Canvas
canvas的调用代码如下,里面新建的矩形、圆形等成为item,item自带一些属性:

item的位置由坐标属性来定,举例矩形、三角形、线条、椭圆:

其他插件
en是创建文本框的代码:

Packing widgets
把多个插件安排在一行,这样做一开始需要安排row(行)。代码如下:

Menus and Callables
用来生成下拉菜单:

Binding
一个Bingding是用来将插件(widget)、事件(event)、反馈(callback)绑定起来。举例:

2014.10.11—Mac下ssh翻墙

今天闲来无事,研究了一下mac下的翻墙。VPN,goagent,ssh。亲测之后还是觉得ssh是最方便的。由于mac自带的Unix解释器。因此本身就支持ssh命令。当你有一个免...

阅读全文

2014.8.26—Python网络编程(四):域名系统

域名系统(DNS)是一个分布式数据库,用来把主机名编程IP地址,DNS以及想关系统之所以存在,有以下两个原因:域名例如www.jevylee.com比IP地址例如222.11.111.2...

阅读全文

2014.7.25—Python网络编程(三):网络服务器

服务器的特点是等待请求,返回应答。对于客户端来说,一般只需要两步。建立Socket对象调用connect()来建立一个和服务器的连接。对于服务器,这个过程需要4步...

阅读全文

欢迎留言

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据