當前位置:
首頁 > 知識 > 【Note】MV-python基礎系列 之 窗口視窗Tkinter

【Note】MV-python基礎系列 之 窗口視窗Tkinter



程序君個人微信

和我聊聊編程和創業的事

加好友



作者丨Yarkona_Wang


https://www.jianshu.com/p/b95001486740



Tkinter是使用 python 進行窗口視窗設計的模塊. 簡單的構造, 多平台, 多系統的兼容性, 能讓它成為讓你快速入門定製窗口文件的好助手。它在 python 窗口視窗模塊中是一款簡單型的,所以用來入門、熟悉窗口視窗的使用, 非常有必要。




1、Label & Button 標籤和按鈕




Label



import

 tkinter 

as

 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

 tkinter 

as

 tk

window

 = 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

 tkinter 

as

 tk

window

 = 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

 tkinter 

as

 tk

window

 = 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

 item 

in

 list_items:
    lb.insert(

"end"

, item)
lb.insert(

1

"first"

)
lb.insert(

2

"second"

)
lb.

delete

(

2

)
lb.pack()

# 激活窗口


window

.mainloop()







4、Radiobutton 選擇按鈕



import

 tkinter 

as

 tk

window

 = 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

中,然後賦值給variable
                    command = 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

 tkinter 

as

 tk

window

 = 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、資料庫研發、幽默程序員等。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python開發 的精彩文章:

【科大訊飛】全球首款,Mobius莫比斯同聲翻譯耳機 ,AI智能運動耳機 ,支持英日法韓俄西班牙6種語音
這個事故告訴我們,該放手時就放手!

TAG:Python開發 |