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圖標仍然無法顯示

然後重新執行一遍


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章