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

python, tkinter, potrzebna pomoc z usuwaniem elementów z listy.
Mateusz Lebioda
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
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:

Kopiuj
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()
Guaz
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Częstochowa
  • Postów: 221
2

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

Kopiuj
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.