tkinter создать неопределенное количество флажков / IntVar - PullRequest
0 голосов
/ 23 февраля 2020

Для проекта, над которым я работаю, я загружаю некоторый файл данных CSV в кадр данных, используя read_csv. Затем я печатаю фрейм данных на фрейме tkinter, используя некоторые виджеты Entry. Пользователь может заполнять или редактировать некоторые записи. Я хотел бы создать в начале каждой строки флажок, чтобы после того, как пользователь доволен изменениями, я загружаю «фрейм данных», для которого флажки отмечены, в базу данных.

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

в моем Tk-наследуемом классе у меня есть функция fileLoad

def fileLoad(self):
    df = pd.read_csv(self.filename)
    rows, cols = df.shape
    for r in range(rows):
        for c in range(cols):
            e = Entry(self.ViewFrame)
            e.insert(0, df.iloc[r, c])
            e.grid(row=r, column=c + 1)

так, как я могу создать переменное количество флажков, расположенных в столбце = 0, пожалуйста?

1 Ответ

0 голосов
/ 23 февраля 2020

Хорошо, я нахожу способ следующим образом:

def fileLoad(self):
    df = pd.read_csv(self.filename)
    rows, cols = df.shape
    vars = []
    for r in range(rows):
        var = IntVar()
        vars.append(var)
        ckbox = ttk.Checkbutton(self.ViewFrame, variable=var)
        ckbox.grid(row=r+10, column=0)
        for c in range(cols):
            e = Entry(self.ViewFrame)
            e.insert(0, df.iloc[r, c])
            e.grid(row=r + 10, column=c + 1)

Я храню переменные var в списке с именем vars.

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