Skip to content
Snippets Groups Projects
Commit 48b1b75a authored by Nils Tesdal's avatar Nils Tesdal
Browse files

Update gui.md

parent 0b9949bc
No related branches found
No related tags found
No related merge requests found
......@@ -73,10 +73,10 @@ result_listbox.bind('<Double-Button-1>', edit_person)
# StringVar
og IntVar og BooleanVar og DoubleVar
Dette er spesielle typer variabler som brukes sammen med *widgets*. Fordelen med disse er at de blir automatisk oppdatert av Python når brukeren endrer innholdet av for eksempel et tekstfelt.
I tillegg til *StringVar* har vi *IntVar* og *BooleanVar* og *DoubleVar*. Hvis datatypen til tekstfeltet du bruker ikke er en streng, men for eksempel en *int*, lønner det seg å bruke *IntVar* istedet. Da slipper du å konvertere mellom tall og strenger. Sjekk ut *alder*-feltet i eksempelapplikasjonen som bruker en *IntVar*.
Prosessen er som følger:
* Vi oppretter en StringVar
* Vi *kan* sette en utgangsverdi på denne
......@@ -87,6 +87,8 @@ Bruk eksempelapplikasjonen for å se hvordan dette gjøres i praksis.
# Widgets
En *widget* er en GUI-element vi bruker for å vise frem data og/eller for å la brukeren legge inn data. Eksempler på disse er:
* Knapper (Button). En knapp opprettes som regel med en linje kode som sier hvilket vindu det skal være i (root), hva som skal stå på knappen ("Søk"), og hvilken funksjon som skal kjøres når brukeren trykker på den (vis_tekst):
```python
knapp = Button(root, text="Søk", command=vis_tekst)
......@@ -111,7 +113,7 @@ listbox = Listbox(root, yscrollcommand=scrollbar.set)
scrollbar.config(command=listbox.yview)
elements = ["egg","bacon","pølser"]
for element in elements:
listbox.insert(END, element[1])
listbox.insert(END, element)
```
* Nedrekksmeny (OptionMenu). En nedtrekksmeny trenger en StringVar for å holde på *valgt* verdi og en liste som angir hvilke valg som er mulige. Ofte vil det være aktuelt å hente denne listen fra en database.
......@@ -122,6 +124,8 @@ options = ["egg","bacon","pølser"]
nedtrekksmeny = OptionMenu(root, chosen, *options) # Merk stjerna foran listevariabelen
```
Det finnes mange flere widgets man kan bruke. Det finnes også mange forskjellige biblioteker med forskjellige widgets, så utvalget er stort. For eksempel finnes det mange fine widgets for å la brukeren velge en dato. Bruke eventuelt nettet for å finne slike. Prøv f.eks et søk på `python date widget`.
# Grid
I eksempelkoden i forrige avsnitt mangler det noe. Vi har ikke *plassert* widget'ene i vinduet. Vi trenger derfor en kodelinje til per widget.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment