Tkinter eingabefeld

Fragen zu Tkinter.
Antworten
ukkeyy
User
Beiträge: 1
Registriert: Samstag 27. März 2021, 13:57

Hey
Ich programmiere seit ca. 1 Woche mit Python und versuche gerade einen Ausloser zu programmieren und bräuchte Hilfe.
ich weiß nicht wie man aus dem Eingabe Feld die Eingabe auslesen kann und dann in einer Message box den Gewinner der Namen die eingegeben wurden ausgeben kann.

Hier mein code:

Code: Alles auswählen

from tkinter import *
import random
from tkinter import messagebox

def Winner():
    messagebox.showinfo("Winner", "Winner")
    return

def Quit():
    window.quit()

window = Tk()

window.title("Ausloser")
window.geometry("500x200")
window.resizable(False, False)

Beschreibung = Label(window, text ="| Geben Sie die Namen der Leute ein |").grid(row = 4)

e1 = Entry(window)
e1.grid(row=4, column = 1)

Start = Button(window, text = "Start", width=25, command = Winner).grid(row=5, column = 0, sticky = W, pady = 4)
Quit = Button(window,text = "Exit" ,width=25, command = Quit).grid(row = 6, column = 0, sticky=W, pady = 4)

window.mainloop()
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

*-Importe benutzt man nicht, weil man nicht kontrollieren kann, welche Namen damit importiert werden.
Funktionen und Variablennamen schreibt man komplett klein.
Die Funktion `Quit` ist überflüssig, da sie ja doch nur eine Funktion aufruft, die man bei ´command` auch direkt angeben könnte.
Alles auf oberster Ebene gehört auch in eine Funktion, die man üblicherweise main nennt.
Es ist wenig sinnvoll, in `Beschreibung`, `Start` und `Quit` den Wert None zu speichern. `Quit` verdeckt übrigens die Funktion gleichen Namens, was nicht sein sollte.
Fenster sollten keine fest vorgegeben Größe haben, weil das auf verschiedenen Systemen zu unbenutzbaren GUIs führen könnte.

Code: Alles auswählen

import random
import tkinter as tk
from tkinter import messagebox
from functools import partial

def show_winner(winner_entry):
    messagebox.showinfo("Winner", winner_entry.get())

def main():
    window = tk.Tk()
    window.title("Ausloser")

    tk.Label(window, text="| Geben Sie die Namen der Leute ein |").grid(row=4, column=0)
    winner_entry = tk.Entry(window)
    winner_entry.grid(row=4, column=1)

    tk.Button(window, text="Start", width=25, command=partial(show_winner, winner_entry)).grid(row=5, column=0, sticky=tk.W, pady=4)
    tk.Button(window, text="Exit" , width=25, command=window.quit).grid(row=6, column=0, sticky=tk.W, pady=4)
    window.mainloop()

if __name__ == "__main__":
    main()
Antworten