python, tkinter, potrzebna pomoc z usuwaniem elementów z listy.

0

Potrzebuje pomocy z programem, chcę aby gdy jest włączony program dało się usuwać niepotrzebne imiona do losowania, nie mam pomysłu jak to zrobić. Z góry dziękuje za wszelkie odpowiedzi i wskazówki

Mój kod:

import random
import tkinter, sys
from tkinter import *
import tkinter.messagebox as messagebox


list = ['Kamil Winnicki', 'Wiktor Jasiński', 'Adam Turowski', 'Arek Major', 'Dominik Piechotka', 'Jakub Laskowski', 'Jakub Materak', 'Kacper Kołodziejski', 'Kamil Stankiewicz', 'Konrad Nosek', 'Krzysiek Wawszczak', 'Andrzej Oplebsiak', 'Miłosz Tarucin', 'Paweł Pawłowski', 'Mateusz Lebioda']

def koniec():
    sys.exit()

def losowanie():
    messagebox.showinfo(message=random.choice(list))

main = tkinter.Tk()

#nagłowek
te = tkinter.Label(main, text = 'Lista 1T:')
te.pack()

#Wyswietla liste 1T
listbox = Listbox(main)
listbox.insert(1, '1. Mateusz Lebioda', '2. Jakub Laskowski', '3. Kamil Winnicki', '4. Wiktor Jasiński', '5. Adam Turowski', '6. Arek Major', '7. Dominik Piechotka', '8. Jakub Materak', '9. Kacper Kołodziejski', '10. Kamil Stankiewicz', '11. Konrad Nosek', '12. Krzysiek Wawszczak', '13. Andrzej Oplebsiak', '14. Miłosz Tarucin', '15. Paweł Pawłowski')
listbox.pack()
#losuje
y = tkinter.Button(main, text = 'losuj', command = losowanie)
y.pack()

#wyjscie z aplikacji
x = tkinter.Button(main, text = 'Zakoncz', command = koniec)
x.pack()

main.mainloop()
2

Usuwać z programu, ale w jakim sensie?
Jeśli chodzi o usunięcie z listbox'a to wystarczy zrobić funkcję ala "update" :P.

import random
import tkinter, sys
from tkinter import *
import tkinter.messagebox as messagebox

list_surnames = ['Kamil Winnicki', 'Wiktor Jasiński', 'Adam Turowski', 'Arek Major', 'Dominik Piechotka', 'Jakub Laskowski', 'Jakub Materak', 'Kacper Kołodziejski', 'Kamil Stankiewicz', 'Konrad Nosek', 'Krzysiek Wawszczak', 'Andrzej Oplebsiak', 'Miłosz Tarucin', 'Paweł Pawłowski', 'Mateusz Lebioda']

def koniec():
    sys.exit()

def losowanie():
    messagebox.showinfo(message=random.choice(list))

def update():
    global listbox, z, list_surnames
    if z.get() in list_surnames:
        list_surnames.remove(z.get())
        listbox = Listbox(main)
        for num, i in enumerate(list_surnames, 1):
            to_insert = str(num) + ". " + i
            listbox.insert(1, to_insert)
        listbox.pack()
    else:
        main.after(400, update)

main = tkinter.Tk()

#nagłowek
te = tkinter.Label(main, text = 'Lista 1T:')
te.pack()

#Wyswietla liste 1T
listbox = Listbox(main)
for num, i in enumerate(list_surnames, 1):
    to_insert = str(num) + ". " + i
    listbox.insert(1, to_insert)
listbox.pack()

#kasuje
z = tkinter.Entry(main)
z.pack()

#losuje
y = tkinter.Button(main, text = 'losuj', command = losowanie)
y.pack()

#wyjscie z aplikacji
x = tkinter.Button(main, text = 'Zakoncz', command = koniec)
x.pack()


main.after(400, update)
main.mainloop()

Prozaiczny przykład rozwiązania, pobaw się by to było ładniejsze :).
Póki co gdy wpiszesz imię i nazwisko gościa do usunięcia z listy, to go usunie, ale utworzy nową listę pod obecną. Miłej zabawy z tym :P.

1 użytkowników online, w tym zalogowanych: 0, gości: 1