Commit 2254eb82 authored by Nils Tesdal's avatar Nils Tesdal
Browse files

Update gui.md

parent dfdc7bd8
...@@ -98,22 +98,22 @@ En *widget* er en GUI-element vi bruker for å vise frem data og/eller for å la ...@@ -98,22 +98,22 @@ En *widget* er en GUI-element vi bruker for å vise frem data og/eller for å la
* 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): * 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 ```python
knapp = Button(root, text="Søk", command=vis_tekst) knapp = Button(root, text="Søk", command=vis_tekst)
``` ```
* Tekstfelter (Entry). Et teksfelt opprettes gjerne med to linjer kode; en for å lage en StringVar som holder på innholdet og en for å lage tekstfeltet (tekst). Også her angir vi hvilket vindu det skal være i (root), i tillegg til hvilken StringVar som skal brukes: * Tekstfelter (Entry). Et teksfelt opprettes gjerne med to linjer kode; en for å lage en StringVar som holder på innholdet og en for å lage tekstfeltet (tekst). Også her angir vi hvilket vindu det skal være i (root), i tillegg til hvilken StringVar som skal brukes:
```python ```python
tekst = StringVar() # Definerer en tekstvariabel for tekstfeltet tekst = StringVar() # Definerer en tekstvariabel for tekstfeltet
tekstfelt = Entry(root, textvariable=tekst) tekstfelt = Entry(root, textvariable=tekst)
``` ```
* Ledetekst (Label) En Label inneholder vanligvis en ledetekst og brukes gjerne foran et tekstfelt (Entry). En *Label* kan imidlertid også inneholde et bilde (dette gjøres i eksempelapplikasjonen). Her er et eksempel med ledeteksten "Søk: ": * Ledetekst (Label) En Label inneholder vanligvis en ledetekst og brukes gjerne foran et tekstfelt (Entry). En *Label* kan imidlertid også inneholde et bilde (dette gjøres i eksempelapplikasjonen). Her er et eksempel med ledeteksten "Søk: ":
```python ```python
ledetekst = Label(root, text="Søk: ") ledetekst = Label(root, text="Søk: ")
``` ```
* Menyer. En meny (Menu) kan inneholde flere meny-elementer med en kommando (command) for hvert element som peker på hvilken funksjon som skal kjøres når elementet velges. Se i *person_main.py* i eksempelprogrammet for å se hvordan vi lager disse. * Menyer. En meny (Menu) kan inneholde flere meny-elementer med en kommando (command) for hvert element som peker på hvilken funksjon som skal kjøres når elementet velges. Se i *person_main.py* i eksempelprogrammet for å se hvordan vi lager disse.
* Lister (Listbox). Lister er litt mer kompliserte da vi gjerne trenger en *scrollbar*. Vi oppretter en *Scrollbar* og en *Listbox* hver for seg og knytter dem sammen. I tillegg må vi legge til elementene i lista en og en. Bruk eksempelapplikasjonen som utgangspunkt for å bruke disse da det er litt komplisert. * Lister (Listbox). Lister er litt mer kompliserte da vi gjerne trenger en *scrollbar*. Vi oppretter en *Scrollbar* og en *Listbox* hver for seg og knytter dem sammen. I tillegg må vi legge til elementene i lista en og en. Bruk eksempelapplikasjonen som utgangspunkt for å bruke disse da det er litt komplisert.
...@@ -129,12 +129,12 @@ ledetekst = Label(root, text="Søk: ") ...@@ -129,12 +129,12 @@ ledetekst = Label(root, text="Søk: ")
* 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. * 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.
```python ```python
chosen = StringVar() chosen = StringVar()
chosen.set("egg") chosen.set("egg")
options = ["egg","bacon","pølser"] options = ["egg","bacon","pølser"]
nedtrekksmeny = OptionMenu(root, chosen, *options) # Merk stjerna foran listevariabelen 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`. 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`.
...@@ -197,9 +197,10 @@ Applikasjonen ligger på *GitHub*: [https://github.com/nilstes/simple-python-gui ...@@ -197,9 +197,10 @@ Applikasjonen ligger på *GitHub*: [https://github.com/nilstes/simple-python-gui
Dere kan kjøre applikasjonen ved å ha *person_main.py* fremme i Thonny og så trykke på start-knappen. Men før dere kjører må dere gjøre følgende: Dere kan kjøre applikasjonen ved å ha *person_main.py* fremme i Thonny og så trykke på start-knappen. Men før dere kjører må dere gjøre følgende:
* Opprette databasen fra [https://mysql.stud.iie.ntnu.no](https://mysql.stud.iie.ntnu.no). SQL-skriptet for dette ligger på GitHub-siden. Databasetabellen er en utvidelse av den vi brukte i forrige leksjon så dere må sannsynligvis slette den gamle tabellen først. Dette gjør dere med SQL-skriptet: * Opprette databasen fra [https://mysql.stud.iie.ntnu.no](https://mysql.stud.iie.ntnu.no). SQL-skriptet for dette ligger på GitHub-siden. Databasetabellen er en utvidelse av den vi brukte i forrige leksjon så dere må sannsynligvis slette den gamle tabellen først. Dette gjør dere med SQL-skriptet:
```sql
DROP TABLE person; ```sql
``` DROP TABLE person;
```
* Sette inn eget brukernavn og passord helt øverst i filen *person_db.py*. * Sette inn eget brukernavn og passord helt øverst i filen *person_db.py*.
* Installere følgende biblioteker i Thonny hvis de ikke allerede er der: *matplotlib* og *numpy*. * Installere følgende biblioteker i Thonny hvis de ikke allerede er der: *matplotlib* og *numpy*.
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment