Python tkinter 修改按鈕文字的 2 種方式

本篇 ShengYu 介紹 Python tkinter 修改按鈕文字,在 Python tkinter 建立 button 按鈕後可能會在之後的事件觸發時去修改按鈕的文字,這邊就來介紹一下怎麼修改 button 的文字標題。

使用 tkinter button 的 text 屬性來修改按鈕文字

這邊介紹第一種方式,使用 tkinter Button 的 text 屬性來修改按鈕文字,也是最通用最簡單的方式,用法範例如下,
這個範例是先透過一個按鈕事件來去改變按鈕文字,每按一次 Button 就會顯示點擊的次數,

python3-button-change-text.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import tkinter as tk
root = tk.Tk()
root.title('my window')
root.geometry('200x150')

counter = 0
def button_event():
global counter
counter += 1
mybutton['text'] = 'click ' + str(counter)

mybutton = tk.Button(root, text='my button', command=button_event)
mybutton.pack()

root.mainloop()

設定 Button 的 text 屬性也可以透過 configure 的方式,寫法如下,

1
mybutton.configure(text = 'click ' + str(counter))

結果圖如下,

點擊 3 次後

用 StringVar 來修改 tkinter 按鈕文字

第二種方式是宣告一個 StringVar 在建立 Button 時指定給 textvariable,這樣 Button 的文字就會跟 StringVar 的變數產生連動,當 StringVar 的變數產生改動時,也會同時反應在 Button 的文字,注意不是指定給 text 唷!
這樣之後在事件觸發後針對 StringVar 來進行修改就可以了,用法範例如下,

python3-button-change-text2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import tkinter as tk
root = tk.Tk()
root.title('my window')
root.geometry('200x150')

text = tk.StringVar()
text.set('my button')

counter = 0
def button_event():
global counter
counter += 1
text.set('click ' + str(counter))

mybutton = tk.Button(root, textvariable=text, command=button_event)
mybutton.pack()

root.mainloop()

其它相關文章推薦
Python tkinter 按鈕用法與範例
Python 新手入門教學懶人包
Python tkinter 新手入門教學