2017-05-21 2 views
1

Was kann ich tun, um das Ergebnis in der Schnittstelle anstelle des Terminals im angegebenen Code zu erhalten? Ich möchte, dass das Ergebnis random.choice in der Tabelle erscheint.Wie zeige ich mit tkinter einen Wert im Fenster an?

import random 
import tkinter, sys 
from tkinter import * 

lista = ['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(): 
    print(random.choice(lista)) 

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() 
+0

Wollen Sie es auf dem gleichen Rahmen erscheinen? Alles im Rahmen löschen und dann einfach die zufällige Auswahl ausdrucken? –

Antwort

1

Eine Möglichkeit wäre, einen Dialog mit der Auswahl anzuzeigen.

import tkinter.messagebox as messagebox 

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

Wenn ich die Frage richtig verstehen Sie das Ergebnis random.choice(lista) in das Listenfeld Element anhängen müssen, kann dies durch den folgenden Code erreicht werden:

def losowanie(): 
    listbox.insert(END, str(listbox.size() + 1) + ". " + random.choice(lista)) 
1

wie Dan-Dev vorgeschlagen, dass Sie tun können dass aber Sie können auch die Funktion loszuwerden

Dies wird tun, was Sie wollen, aber ohne die Funktion losowaine:

y = tkinter.Button(main, text = 'losuj', command = lambda : 
       listbox.insert(END, str(listbox.size() + 1) + ". " + random.choice(lista))) 

Dieser Code unten fügt nur die zufällige Wahl am Ende der Tabelle (mit Funktion losowanie)

def losowanie(): 
    listbox.insert(END, (random.choice(lista))) 
Verwandte Themen