✏️
Codasium
  • Welkom bij Codasium!
  • Handleiding
  • Moduleoverzicht
  • Module 1.1 - Hedy
  • Module 1.2 Van Hedy naar Python
    • Opdracht 1
    • Opdracht 2
  • Module 2.1 - Geschiedenis quiz
    • Les 1
      • Les 1a
      • Les 1b
    • Les 2
      • Les 2a
      • Les 2b
    • Les 3
      • Les 3a
      • Les 3b
    • Les 4
      • Les 4a
      • Les 4b
    • Les 5
      • Les 5a
      • Les 5b
    • Les 6
      • Les 6b
    • Les 7
      • Les 7a
      • Les 7b
  • Module 2.2 - PyGame Quiz
    • Les 1
      • Les 1b
    • Les 2
      • Les 2a
      • Les 2b
    • Les 3
      • Les 3a
      • Les 3b
    • Les 4
      • Les 4a
      • Les 4b
    • Les 5
      • Les 5a
      • Les 5b
    • Les 6
      • Les 6a
      • Les 6b
    • Les 7
      • Les 7a
      • Les 7b
    • Les 8
      • Les 8a
      • Les 8b
    • TODOs
  • Module 2.3 - Pygame Biologie
    • Les 1
      • Les 1a
      • Les 1b
    • Les 2
      • Les 2a
      • Les 2b
    • Les 3
      • Les 3a
      • Les 3b
    • Les 4
      • Les 4b
    • Les 5
      • Les 5b
  • Module 2.4 - Rekenmachine
    • Les 1
      • Les 1a
      • Les 1b
    • Les 2
      • Les 2a
      • Les 2b
    • Les 3
      • Les 3a
      • Les 3b
    • Les 4
      • Les 4a
      • Les 4b
    • Les 5
      • Les 5a
      • Les 5b
    • Les 6
      • Les 6a
      • Les 6b
    • Les 7 (extra)
      • Les 7a
      • Les 7b
  • Module 2.5 - Microbit
  • Module 2.6 - Creative Coding
    • Les 1a
    • Les 1b
    • Les 2a
    • Les 2b
  • Module 3.1 - Spreadsheets
    • Les 1
      • Les 1b
    • Les 2
      • Les 2b
    • Les 3
      • Les 3b
    • Les 4
      • Les 4b
    • Les 5
      • Les 5b
    • Les 6 en 7
      • Les 6b
    • Les 8 - Eindopdracht
      • Les 8b
  • Module 3.2 - Databases
    • Les 1
      • Les 1b
    • Les 2
      • Les 2b
    • Les 3
      • Les 3b
    • Les 4
      • Les 4b
    • Les 5
      • Les 5b
    • Les 6
      • Les 6b
    • Les 7
      • Les 7b
    • Les 8
      • Les 8b
  • Module 3.3 - TkInter Rekenmachine
    • Les 1
      • Les 1a
      • Les 1b
    • Les 2
      • Les 2a
      • Les 2b
    • Les 3
      • Les 3b
    • Les 4
      • Les 4b
    • Les 5
      • Les 5b
    • Les 6
      • Les 6b
    • Les 7
      • Les 7b
    • Les 8
      • Les 8b
  • Module 3.4 - TKinter Woordenoefenapp
    • Les 1
      • Les 1b
    • Les 2
      • Les 2b
    • Les 3
      • Les 3b
    • Les 4
      • Les 4b
    • Les 5
      • Les 5b
    • Les 6
      • Les 6b
    • Les 7
      • Les 7b
    • Les 8
      • Les 8b
  • Module 3.5 - Arduino
    • Les 1
      • Les 1b
    • Les 2
      • Les 2b
    • Les 3
      • Les 3b
    • Les 4
      • Les 4b
    • Les 5
      • Les 5b
    • Les 6
      • Les 6b
    • Les 7
      • Les 7b
    • Les 8
      • Les 8b
  • Module 4.1 - JavaScript
    • Les 1
      • Les 1b
    • Les 2
      • Les 2b
    • Les 3
      • Les 3b
    • Les 4
      • Les 4b
    • Les 5
      • Les 5b
    • Les 6
      • Les 6b
    • Les 7
      • Les 7b
    • Les 8
      • Les 8b
  • Module 4.2 - Game maken
  • Module 4.3 - EU app (TODO)
  • Module 5.1 - Eigen project
  • Module 5.2 - Generatieve AI
    • Les 1
      • Les 1a
      • Les 1b
    • Les 2
      • Les 2a
      • Les 2b
    • Les 3
      • Les 3a
      • Les 3b
    • Les 4
      • Les 4a
      • Les 4b
  • Module 6.1 - Boekenproject
    • Les 1 - Leeswijzer - Basis
    • Les 2 - Leeswijzer - Verdieping
    • Les 3 - Opdrachten
    • Les 4 - Opdrachten
  • Module 6.2 - Algoritmiek
  • 💤Archief
    • Module 1.1 - Nederlands
      • Spiekbrief
        • Spiekbrief - in te vullen
        • Spiekbrief - ingevuld
      • Les 1
        • Les 1a
        • Les 1b
      • Les 2
        • Les 2a
        • Les 2b
      • Les 3
        • Les 3a
        • Les 3b
      • Les 4
        • Les 4a
        • Les 4b
      • Les 5
        • Les 5a
        • Les 5b
      • Eindopdracht
        • Eindopdracht
      • Nakijkbladen
        • Les 1
        • Les 2
        • Les 3
        • Les 4
        • Les 5
    • Module 1.2 - Kunst
      • Les 1
        • Les 1a
        • Les 1b
      • Les 2
        • Les 2a
        • Les 2b
      • Les 3
        • Les 3a
        • Les 3b
      • Les 4
        • Les 4a
        • Les 4b
      • Les 5
        • Les 5a
        • Les 5b
      • Eindopdracht
        • Les 6b
      • Nakijkbladen
        • Les 1
        • Les 2
        • Les 3
        • Les 4
        • Les 5
    • Module 4.1 - Flask
      • Les 1
        • Les 1b
      • Les 2
        • Les 2b
      • Les 3
        • Les 3b
      • Les 4
        • Les 4b
      • Les 5
        • Les 5b
Powered by GitBook
On this page

Was this helpful?

  1. Module 3.3 - TkInter Rekenmachine
  2. Les 3

Les 3b

PreviousLes 3NextLes 4

Last updated 2 years ago

Was this helpful?

1) Open je bestand en laat de woorden één voor één zien

Zoek nu jouw code van voor de vakantie op. Als het goed is had jij in je code al een functie selecteren() staan. Lees die code nu eens goed door en kijk of je nog weet wat alles doet.

In de functie selecteren() opende je een bestand en printte je de woorden daaruit één voor één.

Heb je het bestand niet meer?

We gaan nu een stukje van het selecteren in jouw UI programma zetten, zo:

  • Maak een nieuwe functie selecteren()

  • Koppel die aan de selecteerknop. Weet je niet meer hoe het moet? Kijk bij je code van vorige week.

  • Open het csv-bestand en zet iedere woord op het uitvoerveld. In jouw code was dat een print(), die moet je dus gaan veranderen.

Probeer je code nu weer uit.

2) Even pauzeren!

Als het goed is, doet je code het nu maar... alle woorden komen heel snel achter elkaar! Je ziet dus alleen het laatste woord. Zo ziet dat er waarschijnlijk uit (maar jij zou ook een ander woord kunnen hebben als je een andere versie van de woordenlijst gebruikt)

Wil je zeker weten dat inderdaad alle woorden langskomen? Zet dan eens een deze codes nadat je het uitvoerveld hebt aangepast:

  root.update()
  time.sleep(1)

Dan komende de woorden wel één voor één.

We moeten dus wachten tot de gebruiker op een knop heeft kunnen klikken voor het volgende woord erbij komt! Daar is een tkinter een trucje voor met een variabele, dat gaat als volgt.

Zet bovenaan je code deze regels, die maken speciale tkinter variabeles aan die je kan gebruiken om te kijken of de ja of nee knop al is ingedrukt.

ja_of_nee_knop_is_ingedrukt = IntVar() 
knop_gekozen = StringVar()

def ja_knop_ingedrukt():
  ja_of_nee_knop_is_ingedrukt.set(1)
  knop_gekozen.set("ja")
  
def nee_knop_ingedrukt():
  ja_of_nee_knop_is_ingedrukt.set(1)
  knop_gekozen.set("nee")

Nu moet je deze functie ingedrukt toevoegen als commando van de ja en de nee knop. Weet je nog hoe je een functie op een knop zet?

Als dat gelukt is, moet je in de loop waarin je de woorden inleest een wacht commando zetten. Zet deze regel nadat je het woord in het uitvoerveld hebt geprint.

jaknop.wait_variable(ja_of_nee_knop_is_ingedrukt)

Test je code nu uit! Druk steeds op de ja of nee knop en kijk of er steeds een nieuw woord in beeld komt.

3) Ik ken dat woord al!

In de selecteerfase van je programma gaat de gebruiker voor ieder woord aangeven of ze het al kennen. Dat deden we in de tekstversie met het intypen van ja of nee. In tkinter gaan we nu dus iets doen met de ingedrukte ja of nee knop.

We hebben de speciale variabele knop_gekozengemaakt zodat we weten welke van de twee knoppen er gebruikt is. Staat deze variabele op "ja", dan is de jaknop indrukt, en staat hij op "nee" dan natuurlijk de neeknop. Dat kun jij in de code gebruiken!

Pas je code die je al had aan zodat het netjes reageert op de knoppen.

Zorg er ook voor dat de ja en nee waardes opgeslagen worden in je csv-bestand.

Download het dan hier