按钮标签 - 文本与文本变量
Button Label - text vs textvariable
TTK 按钮:文本与文本变量
我正在尝试将按钮标签文本默认设置为 "Hi",然后单击它,将其文本更改为 "Hello"
我尝试了多种方法来更改文本。
如果我设置 text
= "Hi" 没问题,但每当我添加 textvariable
时,它就会中断并在按钮本身上不显示文本标签。
同时添加
text
和 textvariable
在 tkinter 中构造按钮时的参数,如下所示?
来自 Python 使用 Tkinter 进行 GUI 编程 by Alan D. Moore
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
tvar = tk.StringVar()
def swaptext():
if tvar.get() == 'Hi':
tvar.set('There')
else:
tvar.set('Hi')
# my_button = ttk.Button(parent, text='Hi', textvariable=tvar, command=swaptext) # BUTTON LABEL IS BLANK
my_button = ttk.Button(parent, text='Hi', command=swaptext) # WORKS, BUT NO TEXTVARIABLE TO CALL TO SWAP TEXT
my_button.pack()
root.mainloop()
假设默认 text
值设置为 "Hi",我希望按钮立即显示 "Hi",但它实际上开始时是空白的。虽然它一开始是空白的,但当我单击按钮时,它会从以下位置切换:
空白 --> 你好
嗨 --> 你好
你好 --> 你好(等等等等)
谁能指出我做错了什么,为什么我的默认按钮 text
值和 textvariable
?
我找到的最接近答案的地方是:TextVariable not working,但这是关于 Entry 构造函数的,它似乎没有将 text
作为参数。
如果我错过了这个问题的答案,我深表歉意,但我没有在任何地方看到任何答案。
您没有为您的StringVar
设置默认值。
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
tvar = tk.StringVar(value="Hi")
def swaptext():
if tvar.get() == 'Hi':
tvar.set('There')
else:
tvar.set('Hi')
my_button = ttk.Button(root, textvariable=tvar, command=swaptext)
my_button.pack()
root.mainloop()
TTK 按钮:文本与文本变量 我正在尝试将按钮标签文本默认设置为 "Hi",然后单击它,将其文本更改为 "Hello"
我尝试了多种方法来更改文本。
如果我设置 text
= "Hi" 没问题,但每当我添加 textvariable
时,它就会中断并在按钮本身上不显示文本标签。
同时添加
text
和 textvariable
在 tkinter 中构造按钮时的参数,如下所示?
来自 Python 使用 Tkinter 进行 GUI 编程 by Alan D. Moore
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
tvar = tk.StringVar()
def swaptext():
if tvar.get() == 'Hi':
tvar.set('There')
else:
tvar.set('Hi')
# my_button = ttk.Button(parent, text='Hi', textvariable=tvar, command=swaptext) # BUTTON LABEL IS BLANK
my_button = ttk.Button(parent, text='Hi', command=swaptext) # WORKS, BUT NO TEXTVARIABLE TO CALL TO SWAP TEXT
my_button.pack()
root.mainloop()
假设默认 text
值设置为 "Hi",我希望按钮立即显示 "Hi",但它实际上开始时是空白的。虽然它一开始是空白的,但当我单击按钮时,它会从以下位置切换:
空白 --> 你好
嗨 --> 你好
你好 --> 你好(等等等等)
谁能指出我做错了什么,为什么我的默认按钮 text
值和 textvariable
?
我找到的最接近答案的地方是:TextVariable not working,但这是关于 Entry 构造函数的,它似乎没有将 text
作为参数。
如果我错过了这个问题的答案,我深表歉意,但我没有在任何地方看到任何答案。
您没有为您的StringVar
设置默认值。
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
tvar = tk.StringVar(value="Hi")
def swaptext():
if tvar.get() == 'Hi':
tvar.set('There')
else:
tvar.set('Hi')
my_button = ttk.Button(root, textvariable=tvar, command=swaptext)
my_button.pack()
root.mainloop()