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

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

如何在 tkinter 中的另一個類的文本小部件中插入文本?

如何在 tkinter 中的另一個類的文本小部件中插入文本?

喵喵時光機 2022-05-24 17:01:05
我正在嘗試通過實例化從另一個類訪問 tkinter 文本小部件,但是在從外部類調(diào)用時它不會被修改,但在類內(nèi)部調(diào)用該方法時工作正常。我也嘗試過@staticmethod,盡管這似乎也不起作用。不過,我更喜歡使用該類的實例化對象。所以這里是主要的:if __name__ == "__main__":    mainapp = tk.Tk()    mainapp.title("Automatic Proofreader")    mainapp.configure(background = "gray")    mainapp.resizable(width = False, height = False)    Core(mainapp).grid(column = 0, row = 0, sticky = 'news')    TextDisplay(mainapp).grid(column = 5, row = 0, sticky = 'news')    mainapp.mainloop()這是我需要訪問的類和方法:class TextDisplay(tk.Frame):    def setText(self, text):        self.displayout.config(state = "normal")        self.displayout.delete(1.0, tk.END)        #This inserts nothing when called from outside class        self.displayout.insert(tk.INSERT, text)        #But it inserts the correct text when called from this same class        self.displayout.config(state = "disabled")    def __init__(self, parent, *args, **kwargs):        tk.Frame.__init__(self, parent, *args, **kwargs)        verticalscroll = tk.Scrollbar(self)        self.displayout = tk.Text(self, font = ('comic sans', 20, 'bold'), height = 20, width = 40, bg = "gray", wrap = tk.WORD, yscrollcommand = verticalscroll.set, state= "disabled")        self.displayout.grid(columnspan = 4)        verticalscroll.grid(column = 5, sticky = 'ns')        verticalscroll.config(command = self.displayout.yview)我首先像這樣在另一個類中實例化它self.displayclass = TextDisplay(mainapp)并像這樣調(diào)用方法self.displayclass.setText(self.text)我在調(diào)試中注意到,當從類外部調(diào)用時,方法內(nèi)部text變量的值被完美地傳遞(例如,正確傳遞為)。但是插入不起作用。self.texttext編輯:“不工作”我的意思是,它根本不插入任何東西。抱歉不清楚。
查看完整描述

1 回答

?
海綿寶寶撒

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

簡而言之,要在對象上調(diào)用函數(shù),您必須具有對該對象實例的引用。這是面向?qū)ο缶幊痰囊粋€基本方面。


您不一定必須使用全局變量。您可以,也可以將其作為屬性存儲在其他對象上。


這是一個有效的最小示例:


if __name__ == "__main__":

    mainapp = tk.Tk()

    displayclass = TextDisplay(mainapp)

    displayclass.grid(column = 5, row = 0, sticky = 'news')


    displayclass.setText("hello, world")

    mainapp.mainloop()


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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