2017-05-22 2 views
0

1T 아래의 첫 번째 목록 상자와 같은 이름을 표시하지 않기 때문에 목록 상자에 문제가 있습니다. 한 줄에만 표시하고 이름을 다른 이름 아래에 표시하려고합니다. 나는 이것을 어떻게하는지 모른다. 삽입 할 때 목록을 풀고에 는Python, tkinter listbox

enter image description here 당신이 필요로하는

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

los = [] 
list = ['1. Kamil Winnicki', '#2. Wiktor Jasiński', '3. Adam Turowski', '#4. Arek Major', '5. Dominik Piechotka', '#6. Jakub Laskowski', '7. Jakub Materak', '8. Kacper Kołodziejski', 
     '#9. Kamil Stankiewicz', '10. Konrad Nosek', '11. Krzysiek Wawszczak', '12. Andrzej Oleksiak', '13. Miłosz Tarucin', '14. Paweł Pawłowski', '#15. Mateusz Lebioda'] 
lines = list 

for line in lines: 
    if line [0] != '#': 
     los.append(line) 

main = tkinter.Tk() 

def koniec(): 
    main.destroy() 

def losowanie(): 
    messagebox.showinfo(message=random.sample(los ,1)) 

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

#Wyswietla liste 1T 
listbox = Listbox(main, width=21, height=15) 
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 Oleksiak', '14. Miłosz Tarucin', '15. Paweł Pawłowski') 
listbox.pack() 

#Obecne osoby 
obecne1 = tkinter.Label(main, text = 'Obecne osoby:') 
obecne1.pack() 

obecne = Listbox(main) 
obecne.insert(1, los) 
obecne.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

아래의 코드로 모든 조언과 관심에 감사드립니다.

삽입 선을 변경하면 충분합니다.

obecne.insert("end", *los) 
        #^ notice this star here. That one makes the unpacking 

또는 for 루프를 사용하여 목록 항목을 반복 할 수 있습니다.

obecne = Listbox(main) 
for item in los: 
    obecne.insert("end", item) 
obecne.pack()