Сброс списка tkinter Python 3 - PullRequest
       6

Сброс списка tkinter Python 3

0 голосов
/ 11 октября 2018


В рамках более крупного приложения Raspberry-Python3.5 я создаю список tkinter Listbox, заполненный простым списком данных.Всякий раз, когда я перестраиваю список с новыми данными, tkinter добавляет новый список ниже старого вместо использования того же объекта, заменяя только данные.
Я пробовал любой вариант, который мог себе представить (итакже некоторые странные ...), чтобы получить только один список, но безрезультатно.
Как я могу удалить старый объект и / или построить новый и / или просто заменить данные?.
Здесьэто короткий рабочий пример:

import tkinter as tk
root = tk.Tk()  

datalist = 0 ,66 ,42 ,553 ,68

def run():
    listbox = tk.Listbox(root)
    listbox.insert(0,datalist)
    listbox.pack()

stepbutton = tk.Button(root, text = "Step", command = run)
stepbutton.pack()   

1 Ответ

0 голосов
/ 11 октября 2018

Вам необходимо сначала удалить существующие элементы, если вы хотите заменить их новым списком.Вы можете удалить элементы списка, используя метод .delete().Это приведет к удалению всех элементов в списке.

listbox.delete(0, 'end')
# then insert new list here

Чтобы сделать то, что вы делаете, создайте один список и поменяйте местами содержимое списка в команде run(), т. Е.

import tkinter as tk

root = tk.Tk()  

# listbox to display data
listbox = tk.Listbox(root)
listbox.pack()

datalist = 0 ,66 ,42 ,553 ,68

def run():
    global listbox
    # clear listbox
    listbox.delete(0, 'end')
    # insert new contents
    listbox.insert(0, datalist)


stepbutton = tk.Button(root, text="Step", command=run)
stepbutton.pack()   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...