Tkinter

要创建并运行您的GUI 程序,下面五步是基本的:

1. 导入Tkinter 模块(import Tkinter,或者,from Tkinter import *)。


top = Tkinter.Tk() # 如果上文是“from Tkinter import *",Tk()就够了

Tkinter.Tk()返回的对象通常被称作根窗口,正因为如此,有些程序用root 来指示它,而非top。
顶层窗口是指那些在您的程序中独立显示的部分。您可以在GUI 程序中创建多个顶层窗口,但它们
中只能有一个是根窗口

2. 创建一个顶层窗口对象,来容纳您的整个GUI 程序。


Tk 有两个坐标管理器用来协助把组件放在正确的位置上;您将经常用到的一个称为“包”,亦即packer。另一个坐标管理器是网格(Grid)--您可以用它来把
GUI 组件放在网格坐标系中,Grid 将依据GUI 中的网格坐标来生成每个对象。我们将紧扣packer 讲解。一旦packer 决定好您所有组件的尺寸和对齐方式,它将为您在屏幕上放置它们。当所有这些组件,包括顶层窗口,最终显示在您屏幕上时,GUI 程序就会进入一个“服务器式”的无限循环。这个无限循环包括等待GUI 事件、处理事件、然后返回等待模式,等待下一个事件。

组件    描述
Button 按钮。类似标签,但提供额外的功能,例如鼠标掠过、按下、释放以及键盘操作/事件
Canvas 画布。提供绘图功能(直线、椭圆、多边形、矩形);可以包含图形或位图
Checkbutton 选择按钮。一组方框,可以选择其中的任意个(类似HTML 中的checkbox)
Entry 文本框。单行文字域,用来收集键盘输入(类似HTML 中的text)
Frame 框架。包含其他组件的纯容器

Label 标签。用来显示文字或图片
Listbox 列表框。一个选项列表,用户可以从中选择
Menu 菜单。点下菜单按钮后弹出的一个选项列表,用户可以从中选择
Menubutton 菜单按钮。用来包含菜单的组件(有下拉式、层叠式等等)
Message 消息框。类似于标签,但可以显示多行文本
Radiobutton 单选按钮。一组按钮,其中只有一个可被“按下”(类似HTML 中的radio)
Scale 进度条。线性“滑块”组件,可设定起始值和结束值,会显示当前位置的精确值
Scrollbar 滚动条。对其支持的组件(文本域、画布、列表框、文本框)提供滚动功能
Text 文本域。多行文字区域,可用来收集(或显示)用户输入的文字(类似HTML 中的textarea)
Toplevel 顶级。类似框架,但提供一个独立的窗口容器。

3. 在您的顶层窗口对象上(或者说在“其中”)创建所有的GUI 模块(以及功能)。


import Tkinter
top = Tkinter.Tk()
hello = Tkinter.Label(top, text='Hello World!')
hello.pack()
quit = Tkinter.Button(top, text='QUIT',
command=top.quit, bg='red', fg='white')

quit.pack(fill=Tkinter.X, expand=1)
Tkinter.mainloop()

4. 把这些GUI 模块与底层程序代码相连接。

5. 进入主事件循环。

 

关于exe的图标:

转:

py2exe打包python为exe


 
 

第一步:建立.py文件 Hello.py 内容: print "Hello World!"

第二步:建立编译文件setup.py 内容: from distutils.core import setup import py2exe setup(console=['hello.py'])或setup(windows=['hello.py']) ;;二者的区别就是前者在运行时会有一个类CMD的DOS框

    *----------------------华丽的分割符------------------------*

         一次处理多个文件:setup(console=["my_one.py", "my_two.py"], windows=["my_three.py"])

        给生成的EXE文件加一个图标:setup(windows = [{"script":"ico.py", "icon_resources": [(1, "myico.ico")]} ])

        指定额外的文件:setup(windows=["test.py"],data_files=[("img",[r"d:\test \1.gif",r"d:\test\2.gif"]),("xml",[r"d:\test\1.xml",r"d:\test\2.xml"])])

              * 说明:这里将会在dist目录中创建两个目录img和xml,img目录里包含1.gif和2.gif这两个文件,xml目录中包含1.xml和 2.xml这两个文件.如果不想创建新的目录img和xml那么只要讲这两个目录写成""空字符串就可以了,此时,py2exe会将指定文件复制到 dist目录下。上面data_files是一个有两个元组作为元素的列表。第一个元组里面的img对应[r"d:\test\1.gif",r"d: \test\2.gif"] 这个有两个元素的列表,第二个元组里面的xml对应有两个元素的[r"d:\test\1.xml",r"d:\test\2.xml"]列表。

          *------------------------------------------华丽的分割符------------------------------------------------

第三步:进行编译 python setup.py py2exe 当然要先安装环境,点击这里找到py2exe.exe,下载下来安装!注意要找对应于你所安装的python版本,然后就可以用了!

第四步:执行exe文件 编译以后会自动生成build和dist两个文件夹,生成的exe文件在dist文件夹中,build文件夹现在对我们来说就没有用了,但要想执行exe 文件,dist文件夹里的内容不能删,全部都有用的哈,原本只有一句话的硬是弄出3.6M出来,看来有得必有失啊`

#----------------------------------------------------------------------------------------------

补:我在生成的时候提示缺少msvcp71.dll文件,可能我的SYSTEM32里没有这个文件,没事,我们下载一个msvcp71.dll解压到你的dist目录即可;

另:一个标准的setup.py的代码如下: #!/usr/bin/python #filename:setup.py #coding=utf-8

from distutils.core import setup import py2exe

includes = ["encodings", "encodings.*"]    #要包含的其它库文件

options = {"py2exe": {"compressed": 1, #压缩 "optimize": 2, "ascii": 1, "includes":includes, "bundle_files": 1 #所有文件打包成一个exe文件 } } setup(  version = "XXX",  description = "XXX",  name = "XXX",    options = options,      zipfile=None,   #不生成library.zip文件 console=[{"script": "hello.py", "icon_resources": [(1, "hello.ico")] }]#源文件,程序图标 )

转:
windows=[{"script":"HuffmanCompress.py",
13               "icon_resources":[(1, "compresslogo.ico")]}]

"icon_resources":[(1, "compresslogo.ico")]
png2ico myicon.ico source248×248.png source48×48.png source32×32.png source16×16.png
python compile.py py2exe

但是结果并没有如预想中的那样,依旧是丑陋的原图标。后来在stackoverflow上找到了方案,在vista和win7中图标是由多个大小不同的ico文件组成了,所以需要利用png2ico将多个png图片转化为一个ico文件。其中png2ico小工具可以去这里下载。将原来的的png文件做成16×16,32×32,48×48,248×248四个大小,然后用如下命令完成转化,假设原来的png文件为source248×248.png等四个文件,注意四个文件必须从大到小排列,否则做出的ico图标仍然无法显示

然后重新执行一遍


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值