有人可以告诉我python 3中接受的方式来更新修补程序条目中的stringvar。在下面的代码中,我希望条目中的文字更改为"默认文本"到"新文本"按下按钮后。谢谢。
import tkinter as tk
from tkinter import *
from tkinter import ttk
def get_var():
new_text = "new text"
print(new_text)
window = Tk()
window.title("My Program")
v = StringVar(window, value='default text')
case_name_lbl = Label(window, text="Case Name:").pack(padx=10, pady=10,
side=LEFT)
case_name_entry = Entry(window, textvariable=v)
case_name_entry.pack(fill=tk.X, expand=True, padx=10, pady=10, side=LEFT)
btn = Button(window, text='File', width=10, command=get_var)
btn.pack(in_=window, padx=10, pady=10, side=LEFT)
window.mainloop()
答案 0 :(得分:1)
设置textvariable:
def get_var():
new_text = "new text"
v.set(new_text)
print(new_text)
这对我有用
答案 1 :(得分:0)
这样做
def get_var():
case_name_entry.delete(0, END)
new_text = "new text"
print(new_text)
case_name_entry.insert(0, new_text)
它将清除该条目并在其中插入文本,并且不要使用通配符tkinter
导入*
,因此在完成import tkinter as tk
之后无需像这样导入。如果沿着你想要调试你的行,那么你Stringvar
的位置将非常困难。以下是你的代码的良好结构。
完整代码
import tkinter as tk
def get_var():
case_name_entry.delete(0, tk.END)
new_text = "new text"
print(new_text)
case_name_entry.insert(0, new_text)
window = tk.Tk()
window.title("My Program")
case_name_lbl = tk.Label(window, text="Case Name:")
case_name_lbl.pack(padx=10, pady=10,side=tk.LEFT)
v = tk.StringVar(window, value='default text')
case_name_entry = tk.Entry(window, textvariable=v)
case_name_entry.pack(fill=tk.X, expand=True, padx=10, pady=10, side=tk.LEFT)
btn = tk.Button(window, text='File', width=10, command=get_var)
btn.pack(in_=window, padx=10, pady=10, side=tk.LEFT)
window.mainloop()