Ga naar hoofdinhoud

7.4 Tekst laten typen

Hier bouw je op verder: If en else

Weet je dit niet meer zeker? Lees het terug voordat je verdergaat.

Wil je de naam van de speler weten, of een antwoord op een vraag? Met play.new_text_input maak je een invoerveld waar de speler in kan typen.

Spel laden...
import play

welkom = play.new_text(words="Hoe heet je?", y=100)
veld = play.new_text_input(placeholder="Typ je naam en druk op Enter")

@veld.when_submit
def naam_ingevuld(naam):
welkom.words = "Welkom, " + naam
  1. Regel 4:

    Het invoerveld. De placeholder is de grijze hulptekst die verdwijnt zodra de speler iets typt.

  2. Regel 6:

    when_submit gaat af als de speler op Enter drukt, niet bij elke letter.

  3. Regel 7:

    naam is de getypte tekst. Ook deze functie krijgt zijn waarde als parameter mee.

  4. Regel 8:

    Plakt de naam achter "Welkom, " en zet dat op het scherm.

Klik op het veld en typ maar.

Elke toetsaanslag volgen​

Naast when_submit is er ook when_changed: die gaat bij elke wijziging af, dus na elke letter die de speler typt of wist.

Spel laden...

De huidige inhoud kun je altijd uitlezen met veld.value, en leegmaken doe je met veld.value = "".

Tip: voor een wachtwoordveld zet je password_mode=True — dan verschijnen er rondjes in plaats van letters. Met max_length=10 beperk je de lengte.

Opdracht 7.4.a: Rekenvraag​

Stel een rekenvraag in een tekst, bijvoorbeeld "Hoeveel is 7 x 8?". De speler typt het antwoord in een invoerveld. Bij Enter verschijnt "Goed" of "Fout".

Klik hier voor een tip.

De tekst uit het veld is een string. Vergelijk hem daarom met "56" (met aanhalingstekens), of maak er eerst met int() een getal van.

Klik hier voor de oplossing.
import play

vraag = play.new_text(words="Hoeveel is 7 x 8?", y=100)
uitslag = play.new_text(words="", y=-100)
veld = play.new_text_input(placeholder="Antwoord")

@veld.when_submit
def antwoord_gegeven(antwoord):
if antwoord == "56":
uitslag.words = "Goed"
else:
uitslag.words = "Fout"
veld.value = ""
Spel laden...

Na het antwoord maakt veld.value = "" het veld weer leeg voor een nieuwe poging.