programmeren

in python

Jaar 3 - Module 2 - eindopdracht bonus: tkinter

vandaag gaan we...

 

  • Leren hoe je knoppen maakt met tkinter
  • gebruik tkinter voor de eindopdracht

De database opdracht

  • Gebruik, in principe, dezelfde klant en data
  • Bekijk je eind-Excelsheet en maak een verslag:
    • Hoe zou je deze tabellen en formules omzetten naar een database?
    • Welke Excel-dingen kun je nog niet in databases?
    • Zet dan de Excelsheet om naar een sql database

De database opdracht

  • Gebruik, in principe, dezelfde klant en data
  • Bekijk je eind-Excelsheet en maak een verslag:
    • Hoe zou je deze tabellen en formules omzetten naar een database?
    • Welke Excel-dingen kun je nog niet in databases?
    • Zet dan de Excelsheet om naar een sql database
  • Denk na wat voor gegevens je zou willen invoeren in de database
    • Welke gegevens staan er al in?
    • Welke gegevens zouden nog toegevoegd kunnen worden?
    • Maak met Python een interface om dit in te voeren
    • Beschijf ook alle extra's die je hebt gedaan

Fase 1 - Deadline 18 januari

  • Gebruik, in principe, dezelfde klant en data
  • Bekijk je eind-Excelsheet en maak een verslag:
    • Hoe zou je deze tabellen en formules omzetten naar een database?
    • Welke Excel-dingen kun je nog niet in databases?
    • Zet dan de Excelsheet om naar een sql database in repl

De opdracht - Fases

Fase 2 - Deadline 14 februari

 

Denk na wat voor gegevens je zou willen invoeren in de database

  • Welke gegevens staan er al in?
  • Welke gegevens zouden nog toegevoegd kunnen worden?
  • Maak met Python een interface om dit in te voeren

De opdracht - Fases

Python interface

 

  • Stel vragen met input()


     

  • Bedenk wat iemand allemaal kan antwoorden

naam = input('welke naam wil je invoeren?')
leeftijd = input(f'wat is de leeftijd van {naam}?')
antw = input('wil je de resultaten zien?')
if antw == 'ja':
  print(resultaten)
antw = input('wil je de resultaten zien [ja/nee]?')
while antw != 'ja' and antw != 'nee':
  print('antwoord astublieft met "ja" of met "nee"')
  antw = input('wil je de resultaten zien [ja/nee]?')
 
if antw == 'ja':
  print(resultaten)

Python interface

 

  • input() is de meest basic manier om te communiceren met een gebruiker
     

  • vaker wordt gebruik gemaakt van knoppen en invulschermen

Python interface

 

  • input() is de meest basic manier om te communiceren met een gebruiker
     

  • vaker wordt gebruik gemaakt van knoppen en invulschermen

Python interface

  • knoppen en invulschermen kan je maken met tkinter
     

  • demo

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

importeer tkinter

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

start een window

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

bepaal de grootte (pixels)

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

kies een titel

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

Maak een functie

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

Haal input op

Haal input op

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

verwijder output

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

check het antwoord

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

laat "correct" zien

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

laat "Wrong answer" zien

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

stel de vraag

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

afmetingen en kleur input box

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

afmetingen en kleur output box

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

Maak een button

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

als de knop wordt ingedrukt, voer de functie "Take_input" uit

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

voeg label, inputveld, knop en outputveld toe aan je applicatie

Python interface

from tkinter import *

root = Tk()
root.geometry("300x300")
root.title("Q&A")

def Take_input():
  INPUT = inputtxt.get("1.0", "end-1c")
  Output.delete(1.0, END)
  if(INPUT == "120"):
    Output.insert(END, 'Correct')
  else:
    Output.insert(END, "Wrong answer")

l = Label(text = "What is 24 * 5 ? ")
inputtxt = Text(root, height = 5, width = 25, bg = "light yellow")

Output = Text(root, height = 5, width = 25, bg = "light cyan")

Display = Button(root, height = 2, width = 20, text ="Show", 
                 command = Take_input)

l.pack()
inputtxt.pack()
Display.pack()
Output.pack()

mainloop()

Start de applicatie

Tkinter

 

Probeer eerst voorbeelden te begrijpen

  • Voer de code uit
     
  • Probeer regel voor regel te begrijpen wat er gebeurd
     
  • Pas iets aan in de code en bekijk het effect
     
  • Schrijf commentaar bij iedere regel code

Tkinter

 

Voorbeelden

Python Klas 3 - Module 2 - Bonus Tkinter

By Ebbens

Python Klas 3 - Module 2 - Bonus Tkinter

Leerdoel Module: werken met databases. Lesdoel: Meer info over bedrijfsopdracht

  • 317