[英]Python Tkinter Label - Updating Based on Dropdown Menus
我正在嘗試在Tkinter窗口的底部創建一個標簽,當用戶單擊“生成”按鈕時,該標簽將根據選定的下拉列表進行更新。 我已經到了可以讓我的代碼正常工作的地步,但是它沒有輸出標簽,它仍然是Py_var0。 有人可以告訴我我要去哪里錯嗎? 我知道它必須在run函數中,或者Labelvar的設置方式不正確,但是我對Python來說還比較陌生,所以被卡住了! 我嘗試查找它,並且代碼對我來說就像我設置的所有示例和答案一樣,所以我肯定缺少明顯的東西!
謝謝你的幫助:
from tkinter import *
kb = Tk()
def run():
global Labelvar
if var1.get() == "A":
Labelvar.set("Label updated")
resultlabel.config(text=Labelvar)
return
Labelvar = StringVar(kb)
var1 = StringVar(kb)
var1.set("A")
resultlabel = Label(kb, text=Labelvar)
menu = OptionMenu(kb, var1, "A", "B", "C")
generate = Button(kb, text="Go", command=run)
menu.grid(row=1, column=2)
generate.grid(row=4, column=2, sticky=W)
resultlabel.grid(row=5, column=1)
mainloop()
問題出在resultlabel.config(text=Labelvar)
因為text參數需要一個字符串,但是如果您傳遞其他(不確定)諸如StringVar的標簽,標簽將抓住您傳遞的內容並將str()
應用於它。 為了解決這個問題
from tkinter import *
kb = Tk()
def run():
if var1.get() == "A":
Labelvar.set("Label updated")
resultlabel.config(textvariable=Labelvar)
return
Labelvar = StringVar()
var1 = StringVar()
var1.set("A")
resultlabel = Label(kb, textvariable=Labelvar)
menu = OptionMenu(kb, var1, "A", "B", "C")
generate = Button(kb, text="Go", command=run)
menu.grid(row=1, column=2)
generate.grid(row=4, column=2, sticky=W)
resultlabel.grid(row=5, column=1)
#This two methods are simply for testing purposes. It works.
run()
kb.mainloop()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.