Удалить всю строку виджетов на сетке, используя флажок и кнопку - PullRequest
0 голосов
/ 07 июня 2019

Я создаю панель мониторинга, которая отображает флажок, имя файла, индикатор выполнения и несколько кнопок в одной строке для представления файла, который был открыт.В настоящее время я пытаюсь реализовать функцию удаления.

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

Изначально я пытался добавить некоторую форму идентификатора виджета в словарь вместе с номером строки, чтобы я мог определить, какую строку выбирает пользовательи какие виджеты должны быть удалены.Не удалось найти форму идентификатора для передачи в словарь для виджетов.

Любая помощь приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...