Tkinter lerret: freeform GUIer i Python

Tkinter-rammeverket gir noen standard GUI-widgeter for bruk i bygging av grafiske brukergrensesnitt i Python. Hvis du trenger mer frihet, kan du bruke Canvas-widgeten som er inkludert i Tkinter, som gir deg et område der du kan tegne tilpassede former.

Hvis du ikke er kjent med det grunnleggende om å bruke Tk i Python, kan du børste opp ved å lese en rask Quickstart for å bygge GUI-baserte applikasjoner i Python.

Vi starter med en grunnleggende Tk-applikasjon. Dette vil opprette et vindu som inneholder en Canvas-widget 300 piksler med 300. Merk: du kan skrive inn alle kommandoene i denne artikkelen i tolkene dine, og GUI-vinduet blir oppdatert når du går.

 fra Tkinter import * root = Tk () lerret = Canvas (root, bredde = 300, høyde = 300) canvas.pack (fill = BOTH) 

Den resulterende applikasjonen ser ikke ut som mye, du bør ha et firkantet, grått vindu. Mer interessant er det å tegne figurer til lerretet - følgekoden, ved å bruke create_rectangle-metoden på lerretet, tegner en grønn firkant til øverste venstre hjørne:

 square = canvas.create_rectangle (0, 0, 150, 150, fyll = "grønn") 

create_rectangle tar fire posisjonsargumenter som representerer koordinatene øverst til venstre og nede til høyre for rektangen, og deretter en liste over valgfrie navngitte parametere. I dette tilfellet setter vi fyllfargen til grønn. For en full liste kan du bla gjennom dokumentasjonen for Tkinter rektangler her.

På samme måte kan du tegne andre former på lerretet. Metoden create_oval lerret fungerer på samme måte som create_rectangle-metoden, bortsett fra at den tegner ellipsen som er inne i det avgrensende rektangelet. Følgende linje tegner en blå sirkel rett under torget:

 sirkel = canvas.create_oval (0, 150, 150, 300, fill = "blue") 

Den neste grunnleggende formtypen å lære er polygon, som lar deg tegne objekter av hvilken som helst form. Create_polygon-metoden tar i seg et hvilket som helst antall stillinger og tegner formen som er dannet ved å bruke alle posisjonene som toppunkt. Følgende eksempel tegner en rød diamant til høyre for plassen:

 diamant = canvas.create_polygon (150, 75, 225, 0, 300, 75, 225, 150, fyll = "rød") 

Polygoner kan ha en mengde poeng, slik at du like gjerne kunne tegnet en fem-, seks- eller syv-sidet form her, i stedet for en diamant.

Til slutt kan du legge til tekst på lerretet ved å bruke create_text-metoden. Denne metoden tar tekstpunktets midtpunkt og deretter valgfrie argumenter inkludert farge. Det viktigste av disse argumentene er text som er teksten som skal skrives på lerretet. I det følgende eksemplet skriver vi litt enkel tekst nederst til høyre i vinduet:

 text = canvas.create_text (230, 230, text = "Tkinter lerret", fyll = "lilla", font = ("Helvectica", "16")) 

Vi angir også skriften manuelt for å gjøre teksten større. På det enkleste er skrifttyper ganske enkelt en tupel som inneholder skriftnavn og størrelse - i dette tilfellet, 16 poeng Helvectica.

Slette elementer fra lerretet

Du har kanskje lagt merke til at vi har lagret verdien som ble returnert ved å lage metodene som er brukt for å legge til former på lerretet. Hver opprettingsmetode returnerer en objektindentifier, som lar oss manipulere objektene etter at de er lagt til.

Du kan slette alle elementer fra lerretet ved å bruke canvas.delete:

 canvas.delete (square) canvas.delete (text) 

Ved å legge til og fjerne elementer fra lerretet, kan du lage mer sofistikerte og tilpassede tilbakemeldinger til brukere av applikasjonene dine. Lerretet kan tilpasses veldig og gir mer kompliserte interaksjoner med objekter.

Følg med i løpet av de kommende ukene når vi skal utforske GUF-er for fritt format med Python mer detaljert.

© Copyright 2021 | pepebotifarra.com