簡體   English   中英

Python Tkinter標簽-基於下拉菜單的更新

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM