Hva er et tkinternett?
Generelt er rutenettet et rammeverk av nettverkslinjer som krysser hverandre og er parallelle med hverandre, og lager en serie rektangulære eller firkantede vinduer. Rutenettet geometri -funksjon levert av Tkinter -biblioteket følger den samme definisjonen av rutenettet.
Grid Geometry Manager er en av de mest fleksible, enkle og enkleste geometri -lederne som er distribuert av TKinter -biblioteket. Det lar deg sette widgetsene i et todimensjonalt bord. Den ordner radene og kolonnene parallelly for å lage en widget av en firkantet eller rektangulær form. For eksempel, hvis du har et grep med 2 × 2 -størrelse, vil det se slik ut:
Hvert kryss mellom søyler og rader er kjent som en "celle", som kan holde en widget. Et indeksnummer (rad, kolonne) representerer hver celle i rutenettet. Så, 2 × 2 -størrelsesnettet vil være representert med (0, 0), (0, 1), (1, 0) og (1, 1). Som standard har den første raden og den første kolonnen en nullindeks, den andre raden og den andre kolonnen har 1 indeks, og så videre.
Indeksene for rutenettet trenger ikke å være i en sekvens, og de kan også ha hull. For eksempel vil du legge til forskjellige widgeter med rutenettet, slik at rutenettet ditt kan se ut som (1, 1), (2, 3), (5, 1), (7, 7), (9, 8), og (10, 10).
La oss nå skrive noen koder som vil hjelpe oss å bruke rutenettgeometri -funksjonen i Python -programmet vårt. Sørg for å kjøre disse eksempelprogrammene for en bedre forståelse.
Eksempel 1
I dette tilfellet viser vi deg et 2 × 2 rutenett. Vi vil definere etiketten for hver celle som (0, 0), (0, 1), (1, 0) og (1, 1) for å vise deg hvordan nettet har plassert dem i orden. Først lager vi en rotmodul TK () for å få et visningsmiljø. Etter det vil vi bruke etiketten () -funksjonen for å definere teksten for hver celle i rutenettet. Og så vil vi bruke rutenettet () -funksjonen til å plassere hver etikett () i cellen til et rutenett (). Se på koden nedenfor:
fra tkinter import *
Fra Tkinter.ttk import *
r = tk ()
L1 = etikett (r, tekst = "(0,0)")
l2 = etikett (r, tekst = "(0,1)")
L3 = etikett (r, tekst = "(1,0)")
l4 = etikett (r, tekst = "(1,1)")
L1.rutenett (rad = 0, kolonne = 0, pady = 2)
L2.rutenett (rad = 0, kolonne = 1, pady = 2)
L3.rutenett (rad = 1, kolonne = 0, pady = 2)
l4.rutenett (rad = 1, kolonne = 1, pady = 2)
MainLoop ()
Når du kjører denne koden, vises et popvindu med et rutenett på (0, 0), (0, 1), (1, 0) og (1, 1) etiketter. Her er utgangspopvinduet:
Eksempel 2
La oss lage en widget som tar innspill fra brukeren. I dette eksemplet vil vi utvide det forrige eksemplet og sette en widget mot hver kolonne som tar innspill fra brukeren. Se koden som er vedlagt nedenfor.
Når vi har utvidet det forrige eksemplet, har vi nettopp lagt til oppføringsfunksjonen for å legge til inngangswidgeten i nettet. Oppførings- () -funksjonen levert av Tkinter -biblioteket brukes til å få inngangen til enkeltlinjestrengen fra brukeren. Etter enter () -funksjonen definerte vi nettopp nettverdiene for inngangscellene. Når du utfører koden ovenfor, vil du få et popvindu som inneholder 4 celler fylt med tekst og 4 celler med en inngangsfane. I hver fane kan du legge inn en en-linjestreng.
fra tkinter import *
Fra Tkinter.ttk import *
r = tk ()
L1 = etikett (R, tekst = "Første oppføring")
L2 = etikett (R, tekst = "Second Entry")
L3 = etikett (R, tekst = "Tredje oppføring")
L4 = etikett (R, tekst = "Fjerde oppføring")
L1.rutenett (rad = 0, kolonne = 0, pady = 2)
L2.rutenett (rad = 2, kolonne = 0, pady = 2)
L3.rutenett (rad = 0, kolonne = 1, pady = 2)
l4.rutenett (rad = 2, kolonne = 1, pady = 2)
E1 = oppføring (R)
E2 = oppføring (R)
E3 = oppføring (R)
E4 = oppføring (R)
E1.rutenett (rad = 1, kolonne = 0, pady = 2)
E2.rutenett (rad = 3, kolonne = 0, pady = 2)
E3.rutenett (rad = 1, kolonne = 1, pady = 2)
E4.rutenett (rad = 3, kolonne = 1, pady = 2)
MainLoop ()
Se utgangswidgeten til rutenettet nedenfor:
Oppførings- () -funksjonen godtar en linjestreng som inneholder et hvilket som helst tegn; Det kan være et tall, eller det kan være et symbol, eller det kan også være en spesiell karakter. Se utgangsnettet nedenfor:
Eksempel 3
I forrige eksempel kan du observere at vi brukte en egen uttalelse for å lage hver celle. For eksempel trengte vi et 2 × 2 -størrelse rutenett, 4 celler i et rutenett, så vi brukte 4 linjer med kode. Hva om vi trenger et rutenett på 100 × 100 størrelse? Vil opprette et 100 × 100 rutenett krever 10.000 kodelinjer? Absolutt ikke. Du kan oppnå samme resultat ved å bruke løkker. Det vil ikke bare redusere kodelinjene, men også øke effektiviteten til programmet og redusere sannsynligheten for feil samtidig.
Her vil vi bruke en nestet for sløyfe for å lage et rutenett av en definert størrelse. Vi vil definere to for løkker som itererer gjennom 10 rader og 10 kolonner for å lage et 10 × 10 størrelse rutenett. La oss se koden nedenfor:
Her definerte vi en rot () -modul for å få et visningsmiljø, og deretter la vi til nestet for sløyfe for rad og kolonne, "for rad i rekkevidde (10)" og "for col i rekkevidde (10)". Dette vil resultere i et 10 × 10 størrelse rutenett. Den første sløyfen vil iterere fra 0 til 9, og den andre sløyfen vil også iterere fra 0 til 9, og lage et 10 × 10 størrelse rutenett. For å skrive ut indeksnummeret for hver celle, brukte vi tekstfunksjonen til etikettfunksjon (), “tekst =“ rad%s - col%s ”. “%S” brukes til å få celleindeksen fra løkken.
Importer tkinter
r = tkinter.Tk ()
for rad i rekkevidde (10):
for COL i rekkevidde (10):
tkinter.Etikett (r, tekst = 'rad%s - col%s'%(rad, col),
Borderbredde = 1).rutenett (rad = rad, kolonne = col)
r.MainLoop ()
Her er det 10 × 10 -størrelsen rutenettet generert fra koden gitt ovenfor:
Konklusjon
I denne artikkelen lærte vi om rutenettet () -funksjonen levert av Tkinter -biblioteket. Gridfunksjonen brukes til å lage et firkantet eller rektangulært formet rutenett i et skjermmiljø. Vi demonstrerte noen nyttige eksempler for å hjelpe deg med å forstå hvordan du bruker en rutenettfunksjon i et Python -program.