我正在創(chuàng)建一個(gè)全局?jǐn)?shù)據(jù)字典,從中我將在我的字典中顯示各種數(shù)據(jù)。字典的兩個(gè)元素是一個(gè)列表和一個(gè)布爾變量。我想在 CheckButton 小部件中使用 BooleanVar()。該字典用于存儲(chǔ)我想在我的 gui 中顯示的各種機(jī)器子系統(tǒng)的信息。gui 的一個(gè)功能是能夠在用戶希望的情況下排除頻道,這意味著停止監(jiān)視。機(jī)器通道是字典鍵,帶有一個(gè)列表和一個(gè)布爾變量。該列表包含一些用于確定通道狀態(tài)的初始數(shù)據(jù)。BooleanVar() 我想添加到一個(gè)復(fù)選按鈕,以便用戶可以在排除/包含通道 gui 之間切換。channelListFull = {'sys1:channel1': (['Label1', 'GOOD', 0, 0],BooleanVar()), 'sys1:channel2': (['Label2', 'GOOD', 0, 0],BooleanVar()), 'sys2:channel1': (['Label3', 'GOOD', 0, 0],BooleanVar())etc...其余代碼(大致,不完全可執(zhí)行)如下class ChannelDisplay(Frame) def __init__(self, master=None, label='NONE', channel='NONE',**kw): Frame.__init(self, master, **kw) self.lbl = label self.chnl = channel self.component = tk.Label(self, text=self.lbl) self.component.grid self.toggle = tk.Checkbutton(self,variable=channelListFull[channel][1]) self.toggle.gridclass Application(Frame): def __init__(self,master=None): Frame.__init__(self,master) self.monitoring() def monitor(self): channelRemoveList = [] for entry in channelListFull.keys(): badChannel = channelListFull[entry][1].get() if not badChannel : channelRemoveList.append(entry) #This is a separate function that modifies which channels are included in the monitoring process for entry in channelListFull.keys(): self.chan = ChannelDisplay(root,label=channelListFull[0][0],channel=entry) self.chan.grid()root = Tk()app=application(master=root)app.mainloop()我在創(chuàng)建的行中收到錯(cuò)誤channelListFull消息: Exception AttributeError: "BooleanVar instance has no attribute '_tk'" in <bound method BooleanVar.__del__ of <Tkinter.BooleanVar instance at 0x7f39981b77e8>> ignored
我可以在啟動(dòng) Tk 小部件和窗口之前啟動(dòng) Tk 變量嗎?
慕尼黑5688855
2022-05-24 16:30:54