python GUI程式設計(Tkinter)簡單使用
阿新 • • 發佈:2019-02-03
在介面中很重要的是佈局,一開始在查詢的的時候網上有很多都是下面這樣:
# -*- coding: utf-8 -*- from Tkinter import * root = Tk() # 設定位置窗體長x寬+x座標+y座標 root.geometry('80x80+10+10') # 填充方向 ''' Label(root, text = 'l1', bg = 'red').pack(fill = Y) Label(root, text = 'l2', bg = 'green').pack(fill = BOTH) Label(root, text = 'l3', bg = 'blue').pack(fill = X) # 左右佈局 Label(root, text = 'l1', bg = 'red').pack(fill = Y, side = LEFT) Label(root, text = 'l2', bg = 'green').pack(fill = BOTH, side = RIGHT) Label(root, text = 'l3', bg = 'blue').pack(fill = X, side = LEFT) # 絕對佈局 l4 = Label(root, text = 'l4') l4.place(x = 3, y = 3, anchor = NW) ''' # Grid 網格佈局 l1 = Label(root, text = 'l1', bg = 'red') l2 = Label(root, text = 'l2', bg = 'blue') l3 = Label(root, text = 'l3', bg = 'green') l4 = Label(root, text = 'l4', bg = 'yellow') l5 = Label(root, text = 'l5', bg = 'purple') l1.grid(row = 0, column = 0) l2.grid(row = 1, column = 0) l3.grid(row = 1, column = 1) l4.grid(row = 2 ) l5.grid(row = 0, column = 3) root.mainloop()
其中重要的是 pack 、 place 、grid 這三個關鍵字。左右佈局比填充方向多了side對齊屬性。絕對佈局place(x軸座標,y軸座標)。
在寫介面的時候,也避免不了使用Entry(輸入框)
Eexe = Entry(top, text="選擇exe檔案", width=40)
Eexe.place(x=135, y=88)
和一些Entry常用功能,比如清空輸入框中的內容
myEn.delete(0, END)
其實就是刪除索引0到最後
還有就是輸入框的插入
myEn.insert(0, text)
其中的0是插入的索引,text是要插入的內容
獲得輸入框的內容
myEn.get()
在介面中通常會使用提示視窗
import tkMessageBox tkMessageBox.showinfo("提示", "提示的內容")
要先引入在使用
經常使用的還有按鈕
Btn1 = Button(top, text="瀏覽", width=15, command=lambda: myfile(Eexe))
Btn1.place(x=450, y=85)
其中最重要的是command屬性,其中command=lambda: myfile(Eexe)
按鈕點選時呼叫myfile這個方法,並傳入一個名叫Eexe的引數,其實就是上面的我們介紹的輸入框,這裡把他當引數傳入。
如果我們的點選事件不需要傳入引數,屬性可以寫成這樣
command=myfile
直接等於方法名
在介面中也經常使用文字label
varLabel = StringVar() # justify = 'left' labelMessage = Label(top, bg='White', textvariable=varLabel, relief=RAISED, width=45, height=12, wraplength=300, anchor='n') labelMessage.place(x=110, y=210)
如果想在文字中新增內容可以使用變數
varLabel.set("想輸入的內容")
同樣label的內容可以取出來的
varLabel.get().encode('utf-8')
返回的是文字的內容,encode('utf-8')是文字的編碼,可以在必要的時候新增
使用的python的時候我們經常還要知道當前的作業系統
currentSystem = platform.system()
if currentSystem == 'Windows':
是不是windows還是Linux