✏️
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 1

Les 1b

PreviousLes 1aNextLes 2

Last updated 2 years ago

Was this helpful?

Opdracht 1) Schakel je code uit en voeg de UI toe

We gaan de User Interface (of UI, zeg: Joe-Ai) stap voor stap toevoegen. Open je code van vorige week en zet even alles uit. Dat doet je met ctrl-a (alles selecteren) en dan ctrl-? (alles op commentaar zetten). Dat ziet er zo uit:

Zet nu deze code bovenaan. Deze regels maken een UI aan met een knop en een invoerveld.

# import time 

from tkinter import *

root = Tk()

root.title("Mijn rekenmachine")
root.geometry("600x400")

def Rekenen():
  som = invoerveld.get()
  # plak hier jouw oude code
  
  uitvoerveld["text"] = "0"

invoerlabel = Label(root)
invoerlabel["text"] = "Vul hier jouw som in:"
invoerlabel.place(x=0, y=0)

invoerveld = Entry(root) 
invoerveld.place(x=0, y=60)

knop = Button(root)
knop["text"] = "Rekenen"
knop["command"] = Rekenen
knop.place(x=0, y=120)

uitvoerveld = Label(root)
uitvoerveld["text"] = "Berekening komt hier"
uitvoerveld.place(x=0, y=180)

Voer de code uit en zie dat je drie elementen in beeld hebt: een invoerveld, een knop en een uitvoerveld, zo:

Vind je de namen of plaatsen van de velden niet mooi? Verander dan de regels 7, 17, 18, 21, 24, 25 29 en 30.

Opdracht 2) Koppel jouw rekenmachine

Nu gaan we jouw bestaande codes invoegen in de functie rekenen(). Pak alle code op die je onderaan de pagina in commentaar had gezet en doe het volgende. Ben heel zorgvuldig anders lukt het niet!

  1. Verwijder deze regels:

    # vraag de gebruiker om een som
    som = input('Voer een som in.')

  2. Selecteer nu alle codes onderaan die beginnen met #

  3. Zet het weer aan met ctrl-?

  4. Spring de code in met tab

  5. Plak de codes nu in de functie rekenen() , op de plek van # plak hier jouw oude code

Als het goed is kun je de functie nu mooi dichtklappen en zitten als jouw codes erin:

Voer nu je code uit om te kijken of alles in orde is! Klik op de rekenknop en kijk

Voer nu je code uit en kijk of alles werkt. Als je goed is kan je een som invoeren in het veld, en komt de uitvoer onder in beeld (nog niet in je UI, dat komt nog).

Als het goed is, ziet het er zo uit:

Krijg je deze foutmelding? Dan ben je vergeten de regel met input() weg te halen.

Opdracht 3) Uitvoer in het label

Zo, de rekenmachine werkt, maar... de uitvoe komt nu onderin beeld en niet in onze mooi UI. Dat gaan we nu aanpassen.

Lees je code goed door en zoek naar allen print() codes. Verander iedere print in het instellen van de tekst van het label uitvoerveld. Bijvoorbeeld:

print('Je voerde geen geldige getallen in!') wordt uitvoerveld["text"] = 'Je voerde geen geldige getallen in!'

Probeer je code weer uit! Komt het resultaat van de som mooi in beeld?

Opdracht 4) Foutje in het rood

Als het goed is, komen ook al je foutmeldingen in de UI, maar ze zien er hetzelfde uit als een uitvoer. In tkinter kan je ook de achtergrondkleur veranderen, zo:

uitvoerveld["bg"] = "red"

Zet deze code op de 2 plekken waar je een foutmelding print. Als je wilt kun je ook de tekstkleur nog veranderen, bijv in geel:

uitvoerveld["fg"] = "yellow"