GUI
- TKinter: 繫結了TK GUI工具集,Python包裝的Tcl程式碼
- PyGTK:TKinker的代替品 wxPython:跨平臺的PythonGUI
- PyQt:跨平臺,商業授權有問題
#呼叫其中的測試包、測試集
import tkinker
tkinter._test()
複製程式碼
import tkinker
gui = tkinker.Tk()
#出現基本的大框
base.mainloop()
#實現訊息迴圈,使用者互動
複製程式碼
- tkinter常用元件
-
按鈕 複製程式碼
-
Button 按鈕元件 複製程式碼
-
RadioButton 單選框元件 複製程式碼
-
CheckButton 選擇按鈕元件 複製程式碼
-
Listbox 列表框元件 複製程式碼
-
文字輸入元件 複製程式碼
-
Entry 單行文字框元件 複製程式碼
-
Text 多行文字框元件 複製程式碼
-
標籤 複製程式碼
-
Lable 複製程式碼
標籤元件,可以顯示圖片和檔案
-
Message 標籤 複製程式碼
-
選單 複製程式碼
-
menu 複製程式碼
-
menubutton 複製程式碼
-
滾動條 複製程式碼
-
scale 複製程式碼
-
scrollbar 複製程式碼
-
其他常用元件 複製程式碼
-
canvas 複製程式碼
-
frame 複製程式碼
-
toplevel 複製程式碼
#lable 的例子,大概流程
import tkinter
base = tkinter.Tk()#1.建立了總皮膚
#負責標題
base.wm_title("label test")
#text的位置是base(指定元件的父元件,再利用元件的屬性對元件進行設定,此處新增相應程式碼)
lb = tkinter.Label(base, text="Python lable")
#給相應的元件安排佈局,此處用pack
lb.pack()
#最後啟動總皮膚的訊息迴圈
base.mainloop()
複製程式碼
- 簡單的講Button
import tkinter
def show_label():
global base
lb = tkinter.Label(base, text="show_label")#標籤細節上的東西以後有空再補充
lb.pack()
base = tkinter.Tk()
btn = tkinter.Button(base, text="show_label", command=show_label)
#如果不加command那句話指定函式,button會失效
#然後每按一次就呼叫函式增加標籤
#此處詳解等會貼張圖
btn.pack(side=tkinter.TOP, expand=tkinter.YES, fill=tkinter.BOTH)
base.mainloop()
複製程式碼
-
以下講標籤和佈局,都寫進註釋裡了 複製程式碼
import tkinter
base = tkinter.Tk()
lb1 = tkinter.Label(base, text="qq號:", background="green").grid(row=0, sticky=tkinter.W)
tkinter.Entry(base).grid(row=0, column=1, sticky=tkinter.E)
#row column編號從0開始
#sticky:N,E,S,W表示上下左右,用來決定元件從哪個方向開始
#ipadx,padx等引數還沒用過,等以後再說吧。。。。。。
#rowspan,columnspan,表示跨行,跨列數量#@¥%¥%。。。。。。。
lb2 = tkinter.Label(base, text="密碼:", background="green").grid(row=1, sticky=tkinter.W)
tkinter.Entry(base).grid(row=1, column=1, sticky=tkinter.E)
btn = tkinter.Label(base, text="登入").grid(row=2, column=1, sticky=tkinter.W)
base.mainloop()
#還有個place佈局,emmmmmm有空再看吧。。
#分絕對佈局和相對佈局,前者用x,y引數,後者用relx,rely,relheight,relwidth
複製程式碼
-
以下是bind()簡單應用 複製程式碼
import tkinter
def click(event):
global base
lb = tkinter.Label(base, text="thanks for your click")
lb.pack()
base = tkinter.Tk()
lb = tkinter.Label(base, text="please click")
lb.bind("<Button-1>", click)#繫結訊息與處理函式
lb.pack()
base.mainloop()
複製程式碼
-
都是些簡單易理解的程式碼 複製程式碼
import tkinter
def reg():
name = e1.get()
pd = e2.get()
t1 = len(name)
t2 = len(pd)
if name == "4902" and pd == "4902":
lb3["text"] = "登陸成功"
else:
lb3["text"] = "使用者名稱或密碼錯誤"
e1.delete(0, t1)
e2.delete(0, t2)
base = tkinter.Tk()
lb1 = tkinter.Label(base, text="username")
lb1.grid(row=0, column=0, stick=tkinter.W)
e1 = tkinter.Entry(base)
e1.grid(row=0, column=1, stick=tkinter.E)
lb2 = tkinter.Label(base, text="password")
lb2.grid(row=1, column=0, stick=tkinter.W)
e2 = tkinter.Entry(base)
e2.grid(row=1, column=1, stick=tkinter.E)
e2['show'] = '*'
btn = tkinter.Button(base, text="register", command=reg).grid(row=2, column=1, stick=tkinter.E)
lb3 = tkinter.Label(base, text="").grid(row=3)
base.mainloop()
複製程式碼
3.20-3.24學習總結
- 基本都是在狂補mySQL和GUI,以及一些Python裡亂七八糟的東西,不過記筆記還是很有用的,確實感覺學的東西要敲一遍才真的有幫助,雖然感覺這幾天學的雜、不知從何記起,(舍友還在敲程式碼。。。)但看了舍友整齊的掘金專欄,我也想把每天學的東西好好整理到上面了,加油吧,其實也沒遇到太多難解決的問題,加油加油!