我有一個自定義的 ttk.Entry 小部件。我需要在通過 .configure 方法修改“textvariable”時執行一個操作,但我沒有得到它。
一個例子:
self.user = StringVar()
self.user.set('test')
self.my_ent = custom_Entry(self.frame)
self.my_ent.configure(textvariable=self.user)
當 .configure 中有“textvariable”時,我想更改小部件樣式
我試圖在我的自定義小部件中重新創建 .configure 方法,但我無法在 .configure 中呼叫 .configure
def configure(self, cnf=None, **kw):
for k, v in kw.items():
if k == 'textvariable':
self.delete('0', END)
self.configure(style='custom.TEntry')
self['show'] = ''
return self._configure('configure', cnf, kw)
我無法在 .configure 中執行此操作:
self.configure(style='custom.TEntry')
self['show'] = ''
補充

示例代碼 https://www.mediafire.com/file/ehopuk4ljyj1mpi/frm_main.py.zip/file 注意:我更新了檔案
uj5u.com熱心網友回復:
您可以configure通過super()呼叫基本方法
這是檔案中的第一段super():
回傳一個代理物件,該物件將方法呼叫委托給型別的父類或兄弟類。這對于訪問在類中被覆寫的繼承方法很有用。
例如:
def configure(self, **kwargs):
super().configure(**kwargs)
if "textvariable" in kwargs:
self.delete(0, "end")
super().configure(style='custom.TEntry', show='')
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/402219.html
下一篇:無法將變數轉移到另一個類
