使用复选框和按钮删除网格上的整个窗口小部件行

时间:2019-06-07 08:58:37

标签: python python-3.x user-interface tkinter

我正在创建一个仪表板,在同一行上显示一个复选框,文件名,一个进度条和一些按钮,以表示已打开的文件。我目前正在尝试实现删除功能。

Current dashboard layout

我想选择左侧的复选框,当按下底部的删除按钮时,它将删除整个选定的小部件行。

from tkinter import Tk

Delete_button = Button(self,
                text="Delete",
                width=10,
                command=self.Delete)
Delete_button.pack(side=RIGHT, padx=5, pady=5)

def Delete(self):
        print("Deleting...")

def openDialogFunction(self): 
        global filepath
        filepath = filedialog.askopenfilename()
        if filepath != "":
            incrementFunction(self) #Used to keep track of the row
            base = os.path.basename(filepath)
            filename = base.split(".")[0]  # Grab file name for dashboard

            # ********** Create new row *************
            var2 = IntVar()
            global CHKBtn
            CHKBtn = Checkbutton(Main_frame,
                        text=filename,
                        width=45,
                        anchor="w",
                        variable=var2).grid(row=RowCounter, column=0, sticky='e')

            global progressStart
            progressStart = Progressbar(Main_frame,
                        orient="horizontal",
                        length=360,
                        mode="determinate")
            progressStart.grid(row=RowCounter, column=1, padx=3, sticky='e')

            global EXEBtn
            EXEBtn = Button(Main_frame,
                    text="Execute",
                    width=8,
                    command=lambda e=RowCounter: self.Execute(e))
            EXEBtn.grid(row=RowCounter, column=2, padx=3)

            global TERMBtn
            TERMBtn = Button(Main_frame,
                   text="Terminate",
                   width=8,
                   command=lambda e=RowCounter: self.Terminate(e))
            TERMBtn.grid(row=RowCounter, column=3, padx=3)

def incrementFunction(self):
        global RowCounter 
        RowCounter = RowCounter + 1

最初,我尝试将某种形式的窗口小部件ID连同行号一起添加到字典中,这样我就可以确定用户正在选择的行以及需要删除的窗口小部件。虽然无法找出一种ID形式传递到小部件的字典中。

感谢您的帮助。

0 个答案:

没有答案