我建立了一個簡單的待辦事項列表,我試圖讓該複選框清除自身時則檢查checkbutton(以表示任務已經完成)如何刪除當檢查
我不知道我需要如何執行該功能才能自行移除。任何人都可以幫助我解決這個問題。我梳理了一系列的頁面,沒有一個真的表明你是如何做到這一點的。
class App(object):
def __init__(self, master):
self.master = master
self.frame = Frame(master)
self.frame.grid()
self.addFrame = Frame(master)
self.addFrame.grid(row=0, column=0, columnspan=2, sticky='N')
self.listFrame = Frame(master)
self.listFrame.grid(row=1, column=0, columnspan=2, sticky='NW')
self.todoList = []
self.initUI()
def initUI(self):
self.entryBox = Entry(self.frame, width = 15)
self.entryBox.grid(row=0, column=0, sticky='N')
self.addButton = Button(self.frame, text="<-ADD->", command=self.add)
self.addButton.grid(row=0, column=1, sticky='N')
def removeCheckButton(self):
# - CONFUSED HOW TO REMOVE THE SPECIFIC CHECKBUTTON
pass
def add(self):
entry = self.entryBox.get()
self.entryBox.delete(0, END)
self.todoList.append(entry)
print self.todoList
var1 = IntVar()
self.buttonList = []
for n in range(len(self.todoList)):
lx = Checkbutton(self.listFrame, text=self.todoList[n], variable=self.todoList[n], command=removeCheckButton)
lx.grid(row=n, column=0, sticky='NW')
self.buttonList.append(lx)
print self.buttonList
作爲第一條評論:'command = removeCheckButton'應該是'command = self.removeCheckButton'。 – Marcin 2014-12-11 03:00:26
在大多數窗口小部件AFAIK上,您可以使用destroy()或grid_forget()。要做到這一點,你將不得不使用partial來將數字傳遞給函數,然後銷燬/忘記self.buttonList [數字]。嘗試一下,看看你是如何做到的。從functools中導入部分內容,並使用command = partial(self.removeCheckButton,number)調用該函數。有關grid_forget的信息,請訪問http://effbot.org/tkinterbook/grid.htm – 2014-12-11 03:04:36
我認爲我仍然無法理解如何實施該破壞。林不知道如何通過列表中的號碼 – mGarsteck 2014-12-11 03:13:47