Tkinter Button按鈕控件

        button控件是Tkinter中常用的窗口部件之一,同時也是實現程序與用戶交互的主要控件。用戶通過點擊按鈕的行爲來執行回調函數,是Button控件的主要功能。

        button控件的使用方法:首先自定義一個函數或者方法,然後將函數與按鈕關聯起來,最後,儅用戶按下這個按鈕時,Tkinter就會自動調用相關函數。

        按鈕控件同樣包含文本、圖像、位圖、并通過command參數回調函數。button也可以不執行回調函數,此時button控件只是個“擺設”。button控件的代碼案例如下所示:

import tkinter as tk

#創建主窗口
window = tk.Tk()

#設置回調函數
def callback():
    print("click me!")

#使用按鈕控件調用函數
button_set = tk.Button(window, text = "點擊執行回調函數", command = callback()).pack()

#循環顯示主窗口
tk.mainloop()

        代碼運行結果如下所示:

 

        button控件的常用屬性如下所示:

button空間常用屬性
屬性説明
anchor控制文本所在的位置,默認為中心位置(center)
activebackground儅鼠標放在按鈕上時,按鈕的背景顔色
activeforeground儅鼠標放在按鈕上時,按鈕的前景色
bd按鈕邊框的大小,默認為2個像素
bg按鈕的背景色
command用來執行按鈕關聯的回調函數。儅按鈕被點擊時,執行該函數
fg按鈕的前景色
font按鈕文本的字體樣式
height按鈕高度
heightlightcolor按鈕控件高亮処的顔色
image按鈕上要顯示的圖片
justify按鈕顯示多行文本時,用來指定文本的對齊方式,參數值由LEFT/RIGHT/CENTER
padx/padypadx/pady指定水平方向/垂直方向的間距大小
ipadx/ipadyipadx/ipady指標簽文字與標簽容器之間的橫向距離/縱向距離
state設置按鈕的可用狀態,可選參數有NORMAL/ACTIVE/DISABLED,默認為NORMAL
text按鈕控件顯示的文本

        除了Button控件之外,還有其他形式的控件如復選控件(Checkbutton)、單選框控件(Radiobutton),這會在後續的學習中出現。

        button代碼示例1:

import tkinter as tk
from tkinter import messagebox

#設置主窗口
window = tk.Tk()

#設置窗口的標題
window.title("demo example")

#設置并調整窗口的大小、位置
window.geometry("400x300+300+200")

#設置button控件的回調函數
def click_button():
    #使用消息對話框控件,showinfo()表示溫馨提示
    messagebox.showinfo(title = "Warm prompt", message = "button demo example")

#設置button控件
button = tk.Button(window, text = "Click", bg = "#7CCD7C", width = 20, height = 5, command = click_button).pack()

#循環顯示窗口
window.mainloop()

        代碼運行結果如下所示:

         

        由上述示例可知,Button控件的作用就是執行一個函數,當用戶點擊按鈕時會彈出一個新的對話框,這種操作提升了用戶的人機交互體驗。因此,按鈕控件在GUI變成中被廣汎的使用。

        下面實例為Button控件添加一張背景圖片,實現代碼如下所示:

       

import tkinter as tk
from tkinter import messagebox

#設置主窗口
window = tk.Tk()

#設置主窗口的標題
window.title("demo example")

#設置窗口的大小
window.geometry("400x300+300+200")

#設置button控件的回調函數
def click_button():
    #使用信息對話空間,showinfo()表示溫馨提示
    messagebox.showinfo(title = "warm prompt", message = "button demo example")

#創建圖片對象
image_set = tk.PhotoImage(file = "G:/python/2025/2.gif")

#通過image參數傳遞圖片對象
button = tk.Button(window, image = image_set, command = click_button).pack()

#循環顯示窗口
window.mainloop()

        代碼運行結果如下所示: 

 

        注意:button控件的佈局

        button在主窗口中的佈局,通常使用grid()函數來完成,該函數以網格狀的形式(即行和列)來管理窗口的佈局。

        grid()佈局管理器提供了一個sticky參數,通過該參數可以設置按鈕的方位,該參數默認將控件設置居中,其他參數有N/S/W/E(上/下/左/右),而且可以組合在一起使用,比如NW/WE/SE/SW/NE等,具體如下圖所示:

 

        特別注意:grid()佈局方法不能與pack()混合在一起使用。具體代碼示例如下所示:

import tkinter as tk
from tkinter import messagebox

#設置主窗口
window = tk.Tk()

#設置主窗口名
window.title("demo example")

#設置主窗口logo
#window.iconbitmap("C:/Users/Administrator/Desktop/example_logo_ico")

#設置主窗口大小
window.geometry("400x200+100+100")

#禁止用戶修改主窗口大小
window.resizable(0,0)

#將兩個標簽分別佈置在第一行、第二行
tk.Label(window, text = "賬號: ").grid(row = 0)
tk.Label(window, text = "密碼: ").grid(row = 1)

#創建輸入框控件
set_entry_1 = tk.Entry(window)

#以*的形式顯示密碼
set_entry_2 = tk.Entry(window, show = "*")

set_entry_1.grid(row = 0, column = 1, padx = 10, pady = 5)
set_entry_2.grid(row = 1, column = 1, padx = 10, pady = 5)

#設置button回調函數
def login():
    #使用信息對話控件
    messagebox.showinfo("welcome")

#使用grid()函數來佈局,并且控制button控件的顯示位置
tk.Button(window, text = "login", width = 10, command = login).grid(row = 3, column = 0, sticky = "w", padx = 10, pady = 5)
tk.Button(window, text = "quit", width = 10, command = window.quit).grid(row = 3, column = 1, sticky = "e", padx = 10, pady = 5)

#循環主窗口
window.mainloop()

        代碼運行結果如下所示:

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值