【Note】MV-python基礎系列 之 窗口視窗Tkinter
程序君個人微信
和我聊聊編程和創業的事
加好友
作者丨Yarkona_Wang
https://www.jianshu.com/p/b95001486740
Tkinter是使用 python 進行窗口視窗設計的模塊. 簡單的構造, 多平台, 多系統的兼容性, 能讓它成為讓你快速入門定製窗口文件的好助手。它在 python 窗口視窗模塊中是一款簡單型的,所以用來入門、熟悉窗口視窗的使用, 非常有必要。
1、Label & Button 標籤和按鈕
Label
import
tkinteras
tk# 定義 window 窗口
window
= tk.Tk()# 定義 window 的一些屬性
window
.title("my window"
)window
.geometry("200x100"
)# 書寫窗口內容
# 建立一個用來描述的標籤 tk.Label
l = tk.Label(
window
,text =
"OMG! This is TK!"
,bg =
"green"
,font = (
"Arial"
,12
),width =
15
,height =
2
)
l.pack()
# 激活窗口
window
.mainloop()Button
也可以通過變數的形式控制標籤的顯示, 引入按鈕 tk.Button 的概念, 每點一次按鈕, 標籤變化一次. 用一下內容替換上面的標籤. 並把需要變化的文字存成變數 var:
import
tkinteras
tkwindow
= tk.Tk()window
.title("my window"
)window
.geometry("200x100"
)# 定義點擊按鈕時,執行的命令
on_hit = False
def hit_me():
global on_hit
if
on_hit == False:on_hit = True
var
.set
("you hit me"
)else
:on_hit = False
var
.set
(""
)# 設置 Label
var
= tk.StringVar()l = tk.Label(
window
,textvariable =
var
,bg =
"green"
,font = (
"Arial"
,12
),width =
15
,height =
2
)
l.pack()
# 設置 Button
b = tk.Button(
window
,text =
"hit me"
,width =
15
,height =
2
,command = hit_me
)
b.pack()
window
.mainloop()2、Entry & Text 輸入,文本框
import
tkinteras
tkwindow
= tk.Tk()window
.title("my window"
)window
.geometry("200x200"
)# 創建按鈕分別觸發兩種情況
def insert_point():
var
= e.get
()t.insert(
"insert"
,var
)def insert_end():
var
= e.get
()t.insert(
"end"
,var
)b1 = tk.Button(
window
, text ="insert point"
,width =
15
, height =2
,command = insert_point)
b1.pack()
b2 = tk.Button(
window
, text ="insert end"
,width =
15
, height =2
,command = insert_end)
b2.pack()
# 創建輸入框 entry,用戶輸入任何內容都顯示為 *
e = tk.Entry(
window
, show ="*"
)e.pack()
t = tk.Text(
window
, height =2
)t.pack()
# 激活窗口
window
.mainloop()測試一下
第一次:在entry中輸入tkinter,在text中輸入0000並將游標定位在中間位置,點擊insert point
第二次:點擊insert end
3、Listbox 列表部件
import
tkinteras
tkwindow
= tk.Tk()window
.title("my window"
)window
.geometry("200x200"
)# 創建一個 label 用於顯示
var1 = tk.StringVar()
l = tk.Label(
window
, bg ="yellow"
, width =4
, textvariable = var1)l.pack()
# 創建一個方法,用於按鈕的點擊事件
def print_selection():
value = lb.get(lb.curselection())
# 獲取當前選中的文本
var1.set(value)
# 為 label 設置值
b1 = tk.Button(
window
, text ="print selection"
,width =
15
, height =2
,command = print_selection)
b1.pack()
# 創建一個 Listbox 和變數 var2,並將 var2 的值賦給 Listbox
var2 = tk.StringVar()
var2.set((
11
,22
,33
,44
))lb = tk.Listbox(
window
, listvariable = var2)# 創建一個 list 並將值循環添加到 Listbox 控制項中
list_items = [
1
,2
,3
,4
]for
itemin
list_items:lb.insert(
"end"
, item)lb.insert(
1
,"first"
)lb.insert(
2
,"second"
)lb.
delete
(2
)lb.pack()
# 激活窗口
window
.mainloop()4、Radiobutton 選擇按鈕
import
tkinteras
tkwindow
= tk.Tk()window
.title("my window"
)window
.geometry("200x200"
)# 該功能用來對選擇的 radiobutton 進行操作.
# print_selection 功能就是選擇了某個 radiobutton 後會在屏幕上列印的選項.
def print_selection():
l.config(text=
"you have selected "
+var
.get
())# 首先定義一個
var
用來將 radiobutton 的值和 Label 的值聯繫在一起# 然後創建一個radiobutton部分:
var
= tk.StringVar()l = tk.Label(
window
, bg="yellow"
, width=20
, text="empty"
)l.pack()
r1 = tk.Radiobutton(
window
, text ="Option A"
,variable =
var
, value ="A"
, # 代表:當我們滑鼠選中了其中一個選項,把value的值A放到變數var
中,然後賦值給variablecommand = print_selection)
r1.pack()
r2 = tk.Radiobutton(
window
, text="Option B"
,variable=
var
, value="B"
,command=print_selection)
r2.pack()
r3 = tk.Radiobutton(
window
, text="Option C"
,variable=
var
, value="C"
,command=print_selection)
r3.pack()
# 激活窗口
window
.mainloop()5、Scale 尺度
import
tkinteras
tkwindow
= tk.Tk()window
.title("my window"
)window
.geometry("200x200"
)# 觸發功能
l = tk.Label(
window
, bg="yellow"
, width=20
, text="empty"
)l.pack()
def print_selection(v):
l.config(text=
"you have selected "
+ v)# scale 部件
s = tk.Scale(
window
, label="try me"
, from_=5
, to=11
, orient=tk.HORIZONTAL,length=
200
, showvalue=0
, tickinterval=2
, resolution=0.01
, command=print_selection)s.pack()
# 激活窗口
window
.mainloop()Scale 參數詳解:
參數label是指scale部件的名稱,即在這裡scale部件名稱為try me
參數from_=5,to=11的意思就是從5到11,即這個滾動條最小值為5,最大值為11(這裡使用from_是因為在python中有from這個關鍵詞)
參數orient=tk.HORIZONTAL在這裡就是設置滾動條的方向,如我們所看到的效果圖,這裡HORIZONTAL就是橫向。
參數length這裡是指滾動條部件的長度,但注意的是和其他部件width表示不同,width表示的是以字元為單位,比如width=4,就是4個字元的長度,而此處的length=200,是指我們常用的像素為單位,即長度為200個像素
參數resolution=0.01這裡我們可以藉助數學題來理解,我們做的很多數學題都會讓我們來保留幾位小數,此處的0.01就是保留2位小數,即效果圖中的5.00 9.00等等後面的兩位小數,如果保留一位就是resolution=0.1 這裡的showvalue就是設置在滾動條上方的顯示。
參數showvalue=0顯示的就是效果圖,上方無結果顯示,如果改為showvalue=1,則會顯示為指定信息。
參數tickinterval設置的就是坐標的間隔,此處為tickinterval=2,顯示的即為效果圖中的5.00 7.00 9.00 11.00 如果改為tickinterval=3則為5.00 8.00 11.00。
6、Checkbutton 勾選項
7、Canvas 畫布
8、Menubar 菜單
9、Frame 框架
10、messagebox 彈窗
11、pack grid place 放置位置
推薦↓↓↓
長
按
關
注
??
【
16個技術公眾號
】都在這裡!
涵蓋:程序員大咖、源碼共讀、程序員共讀、數據結構與演算法、黑客技術和網路安全、大數據科技、編程前端、Java、Python、Web編程開發、Android、iOS開發、Linux、資料庫研發、幽默程序員等。
※【科大訊飛】全球首款,Mobius莫比斯同聲翻譯耳機 ,AI智能運動耳機 ,支持英日法韓俄西班牙6種語音
※這個事故告訴我們,該放手時就放手!
TAG:Python開發 |