亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用帶參數的函數更改特定 tkinter 標簽的文本

使用帶參數的函數更改特定 tkinter 標簽的文本

12345678_0001 2022-12-14 20:44:00
Label我正在嘗試根據參數輸入在函數中引用特定的 tkinter 。我已經嘗試了很多東西,并找到了一些關于 exec 和 eval 以及可變變量的主題,但我想避免不良做法(我不知道如何通過這些方法實現它)。我覺得我缺少一些非?;镜臇|西,但我無法全神貫注。下面是我的函數的簡化代碼:    def myFunction(input_num):        while ArbitraryVariableName == False:            # Do stuff in while loop        if input_num== "1":            self.lbl1["text"] = "New Value 1"        elif input_num == "2":            self.lbl2["text"] = "New Value 2"        elif input_num== "3":            self.lbl3["text"] = "New Value 3"        elif input_num== "4":            self.lbl4["text"] = "New Value 4"        elif input_num== "5":            self.lbl5["text"] = "New Value 5"        # And so forth for 20+ more elif statements您會注意到input_num直接與“”的特定 tkinterLabel名稱相關lbl + input_num。如果有幫助,下面是兩個標簽之一的代碼(它們都遵循類似的模式):    self.lbl1 = Label(topframe, text="Old Value Test 1")    self.lbl1 .grid(column=1, row=1)    self.lbl2 = Label(topframe, text="Old Value Test 2")    self.lbl2 .grid(column=1, row=2)    # And so forth有沒有一種更清潔、更少重復的方法來做到這一點?
查看完整描述

1 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

你說你不想使用這個eval函數,所以你可以使用標簽列表,這使得你的代碼更短:


import tkinter as tk


class example:

    def __init__(self, master):

        self.master = master


        self.lbl1 = tk.Label(self.master, text="Old Value Test 1")

        self.lbl1.grid(column=0, row=0)


        self.lbl2 = tk.Label(self.master, text="Old Value Test 2")

        self.lbl2.grid(column=0, row=1)


        self.lbls = [self.lbl1, self.lbl2]


        self.myfunction(1)

        self.myfunction(2)


    def myfunction(self, input_num):

        self.lbls[input_num - 1]["text"] = f"New Value {input_num}"



def main():

    root = tk.Tk()

    example_win = example(root)

    root.mainloop()


if __name__ == '__main__':

    main()

使用這段代碼,我確實假設您有一個來自input_num變量的整數,而不是您在示例中顯示的字符串。


如果您不使用 Python 3,則無法利用f-string。


希望這可以幫助,


查看完整回答
反對 回復 2022-12-14
  • 1 回答
  • 0 關注
  • 96 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號