第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

使用帶參數(shù)的函數(shù)更改特定 tkinter 標(biāo)簽的文本

使用帶參數(shù)的函數(shù)更改特定 tkinter 標(biāo)簽的文本

12345678_0001 2022-12-14 20:44:00
Label我正在嘗試根據(jù)參數(shù)輸入在函數(shù)中引用特定的 tkinter 。我已經(jīng)嘗試了很多東西,并找到了一些關(guān)于 exec 和 eval 以及可變變量的主題,但我想避免不良做法(我不知道如何通過這些方法實現(xiàn)它)。我覺得我缺少一些非?;镜臇|西,但我無法全神貫注。下面是我的函數(shù)的簡化代碼:    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名稱相關(guān)lbl + input_num。如果有幫助,下面是兩個標(biāo)簽之一的代碼(它們都遵循類似的模式):    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有沒有一種更清潔、更少重復(fù)的方法來做到這一點?
查看完整描述

1 回答

?
大話西游666

TA貢獻1817條經(jīng)驗 獲得超14個贊

你說你不想使用這個eval函數(shù),所以你可以使用標(biāo)簽列表,這使得你的代碼更短:


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()

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


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


希望這可以幫助,


查看完整回答
反對 回復(fù) 2022-12-14
  • 1 回答
  • 0 關(guān)注
  • 95 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號