我正在開發一個有點復雜的 Tkinter 應用程式,它有多個充當視窗的類。我只會分享所需的部分,以找出我搞砸的原因。
我試圖在一些按鈕上方的開始頁面上顯示一個數字時鐘。
class StartPage(Frame):
def __init__(self, parent, controller):
Frame.__init__(self, parent)
self.controller = controller
clock = Label(self, font = ('calibri', 40, 'bold'),
background = 'purple',
foreground = 'white')
clock.pack()
self.time()
def time(self):
string = strftime('%H:%M:%S %p')
clock.config(text = string)
clock.after(1000, time)
錯誤代碼: clock.config(text = string) NameError: name 'clock' is not defined
我玩過不同的東西,比如添加 self.clock.config,但我還沒有弄清楚。
我剛剛更新它試圖在 StartPage 中將時鐘標簽設定為它自己的函式。
def time(self):
string = strftime('%H:%M:%S %p')
self.clockLabel.config(text = string)
self.clockLabel.after(1000, time)
def clockLabel(self):
clock = Label(self, font = ('calibri', 40, 'bold'),
background = 'purple',
foreground = 'white')
clock.pack()
在 init 中,我還有 self.time()。
解決了
class StartPage(Frame):
def __init__(self, parent, controller):
Frame.__init__(self, parent)
self.controller = controller
self.clockLabel()
self.time()
def time(self):
string = strftime('%H:%M:%S %p')
self.clock.config(text = string)
self.clock.after(1000, self.time)
def clockLabel(self):
self.clock = Label(self, font = ('calibri', 40, 'bold'),
background = 'purple',
foreground = 'white')
self.clock.pack()
[![作業時鐘圖片][1]][1][1]:https://i.stack.imgur.com/nPMl4.png
uj5u.com熱心網友回復:
這里的問題可能與變數或函式的名稱以及它們在宣告后如何被參考有關。我們執行了以下操作以使類屬性可識別
- 開始每個類屬性
self - 用一個
None值初始化時鐘屬性并將其設定為單獨函式中的標簽:
def packClockLabel(self):
self.clock = Label(self, font = ('calibri', 40, 'bold'),
background = 'purple',
foreground = 'white')
clock.pack()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/385740.html
