1. 程式人生 > >Python GUI程式設計實戰--Tkinter元件詳解:Button

Python GUI程式設計實戰--Tkinter元件詳解:Button

Button控制元件
Tkinter 按鈕元件用於在 Python 應用程式中新增按鈕,按鈕上可以放上文字或影象,按鈕可用於監聽使用者行為,能夠與一個 Python 函式關聯,當按鈕被按下時,自動呼叫該函式。
語法
bt = Button ( master, option=value, … )
master: 按鈕的父容器。
options: 可選項,即該按鈕的可設定的屬性。這些選項可以用鍵 = 值的形式設定,並以逗號分隔。

常用元件選項講解:
text:按鈕的文字內容
image:按鈕上要顯示的圖片

command:按鈕關聯的函式,當按鈕被點選時,執行該函式

height:按鈕的高度
width:按鈕的寬度,如未設定此項,其大小以適應按鈕的內容(文字或圖片的大小)

fg:按鈕的前景色(按鈕文字的顏色)
bg:按鈕的背景色

padx:按鈕在x軸方向上的內邊距(padding),是指按鈕的內容與按鈕邊緣的距離
pady:按鈕在y軸方向上的內邊距(padding)

activebackground:當滑鼠放上去時,按鈕的背景色
activeforeground:當滑鼠放上去時,按鈕的前景色

font:文字字型

bd:按鈕邊框的大小,預設為 2 個畫素

highlightcolor:要高亮的顏色

justify:顯示多行文字的時候,設定不同行之間的對齊方式,可選項包括LEFT, RIGHT, CENTER

relief:邊框樣式,設定控制元件3D效果,可選的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。預設為 FLAT。

state:設定按鈕元件狀態,可選的有NORMAL、ACTIVE、 DISABLED。預設 NORMAL。

underline:下劃線。預設按鈕上的文字都不帶下劃線。取值就是帶下劃線的字串索引,為 0 時,第一個字元帶下劃線,為 1 時,前兩個字元帶下劃線,以此類推

wraplength:限制按鈕每行顯示的字元的數量

anchor:錨選項,控制文字的位置,預設為中心

Button方法
以下為元件常用的方法:
deselect():清除單選按鈕的狀態
flash():在啟用狀態顏色和正常顏色之間閃爍幾次單選按鈕,但保持它開始時的狀態。
invoke():可以呼叫此方法來獲得與使用者單擊單選按鈕以更改其狀態時發生的操作相同的操作
select():設定單選按鈕為選中。
實戰內容:


1.製作一個按鈕,點選後,彈出hello訊息框

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import tkinter as tk
from tkinter import messagebox

root = tk.Tk()

def hello():
    # 訊息框
    messagebox.showinfo("Hello Python", "Hello!")

bt = tk.Button(root, text="click", command=hello)
bt.pack()
root.mainloop()

在這裡插入圖片描述
2.製作一個按鈕,每點選一次,便在label上顯示點選的奇偶次數

import tkinter as tk

window = tk.Tk()
window.title("My Window")
window.geometry('200x100')
# 將var定義為StringVar,並賦值給label的textvariable
# 使其能夠跟隨var的變化而變化
var = tk.StringVar()
label = tk.Label(window, textvariable=var, bg='green',
                 font=('Arial', 12), width=15, height=2)
label.pack()
times = 0
def click():
    global  times
    times += 1
    if times % 2 == 0:
        var.set('click even')
    else:
        var.set('click odd')
bt = tk.Button(window, text='click', width=15, height=2,command=click)
bt.pack()
window.mainloop()

在這裡插入圖片描述
通過以上內容,相信大家對Tkinter的Button元件,有了更進一步的瞭解,相信大家可用用它了做一個簡單的計時器了吧?快一起來坐坐看吧,加油!
Python交流群:942913325 歡迎大家一起交流學習