Python - Tkinter Uvod


Tkinter vodič pruža osnovne i napredne koncepte Python Tkinter. Naši Tkinter tutorijali su dizajniran za početnike i profesionalce. Python pruža standardnu biblioteku Tkinter za kreiranje grafičkog korisničkog interfejsa za desktop aplikacije. Razvoj desktop aplikacija sa python Tkinter-om nije složen zadatak. Prazan Tkinter prozor najvišeg nivoa može se kreirati korištenjem sljedećih koraka.

  • Importovanjem Tkinter modula.
  • Kreiranjem glavnog prozora aplikacije.
  • Dodavanjem widget-a kao što su> oznake, dugmad, okviri, itd. u prozor.
  • Pozivanje glavne petlje događaja kako bi se radnje mogle odvijati na ekranu računara korisnika.

Primjer Tkinter

# !/usr/bin/python3  
from tkinter import *  
# Kreiranje glavnog prozora aplikacije.
top = Tk()  
# Ulazak u glavnu petlju događaja 
top.mainloop() 

Prikaz koda iz gornjeg primjera izgledaće ovako:



Tkinter widgets

Postoje različiti widgeti poput dugmeta, platna, dugmeta za potvrdu, unosa, (eng. button, canvas, checkbutton, entry,) itd. koji se koriste za pravljenje Python GUI aplikacija.

Widget Opis
Button Button se koristi za dodavanje različitih vrsta dugmadi u python aplikaciju.
Canvas Canvas widget se koristi za crtanje platna na prozoru.
Checkbutton Checkbutton se koristi za prikaz CheckButtona na prozoru.
Entry Entry se koristi za prikaz tekstualnog polja u jednom redu korisniku. Obično se koristi za prihvatanje korisničkih vrijednosti.
Frame Može se definisati kao kontejner u koji se može dodati i organizovati još jedan widget.
Label Label je tekst koji se koristi za prikaz neke poruke ili informacija o drugim widget-ima.
ListBox ListBox vidžet se koristi za prikaz liste opcija korisniku.
Menubutton Menubutton se koristi za prikaz stavki menija korisniku.
Menu Koristi se za dodavanje stavki menija korisniku.
Message Vidžet Message se koristi za prikaz okvira za poruke korisniku.
Radiobutton Radiobutton se razlikuje od checkbutton. Ovdje se korisniku pružaju različite opcije i korisnik može odabrati samo jednu opciju među njima.
Scale Koristi se za pružanje klizača korisniku.
Scrollbar Daje korisniku traku za pomicanje tako da korisnik može pomicati prozor gore i dolje.
Text Text se razlikuje od Entry, jer korisniku pruža tekstualno polje u više redova tako da korisnik može napisati tekst i urediti tekst unutar njega.
Toplevel Toplevel se koristi za kreiranje zasebnog prozorskog kontejnera.
Spinbox Spinbox je ulazni widget koji se koristi za odabir opcija vrijednosti.
PanedWindow PanedWindow je poput widgeta kontejnera koji sadrži horizontalna ili vertikalna okna.
LabelFrame LabelFrame je widget kontejnera koji se ponaša kao kontejner.
MessageBox Modul MessageBox se koristi za prikaz okvira za poruke u desktop aplikacijama.


Python Tkinter Geometija

Tkinter geometrija specifikuje metod pomoću kojeg se widgeti prikazuju na ekranu. Python Tkinter pruža sljedeće metode geometrije:

  • metoda pack(),
  • metoda grid(),
  • metoda place().

U nastavku ćemo naučiti šta svaki od ovih metoda znači i kako se koristi.



Python Tkinter pack() metod

Vidžet pack() se koristi za organizovanje vidžeta u bloku. Vidžeti pozicija dodani u python aplikaciju pomoću metode pack() mogu se kontrolisati korištenjem različitih opcija navedenih u pozivu metode. Međutim, kontrole su manje i vidžeti se generalno dodaju na manje organizovan način. Sintaksa za korištenje metode pack() je:

widget.pack(options)  


Pogledajmo primjer pack() metode

# !/usr/bin/python3  

from tkinter import *  
parent = Tk()  
redbutton = Button(parent, text = "Crvena", fg = "red")  
redbutton.pack( side = LEFT)  

greenbutton = Button(parent, text = "Crna", fg = "black")  
greenbutton.pack( side = RIGHT )  

bluebutton = Button(parent, text = "Plava", fg = "blue")  
bluebutton.pack( side = TOP )  

blackbutton = Button(parent, text = "Zelena", fg = "green")  
blackbutton.pack( side = BOTTOM)  

parent.mainloop() 

Prikaz koda iz gornjeg primjera izgledaće ovako:



Python Tkinter grid() metod

Tkinter grid() metod organizuje vidžete u obliku tabele. Možemo odrediti redove i kolone kao opcije u pozivu metode. Takođe možemo odrediti raspon kolona (širina) ili raspon reda (visina) vidžeta. Ovo je organizovaniji način postavljanja widget-a u python aplikaciju. Sintaksa za korištenje metode grid() je:

widget.grid(options)  


Pogledajmo primjer grid() metode

# !/usr/bin/python3  
from tkinter import *  

parent = Tk()  
name = Label(parent,text = "Korisničko ime").grid(row = 0, column = 0) 

e1 = Entry(parent).grid(row = 0, column = 1)  
password = Label(parent,text = "Lozinka").grid(row = 1, column = 0)

e2 = Entry(parent).grid(row = 1, column = 1)  
submit = Button(parent, text = "Prijavi se").grid(row = 4, column = 0) 
 
parent.mainloop()  

Prikaz koda iz gornjeg primjera izgledaće ovako:



Python Tkinter place() metod

Tkinter place() metod organizira vidžete prema određenim x i y koordinatama. Sintaksa za korištenje metode place() je:

widget.place(options)  



Pogledajmo primjer place() metode

# !/usr/bin/python3  
from tkinter import *  

top = Tk()  
top.geometry("400x250")  

name = Label(top, text = "Ime").place(x = 30,y = 50)  
email = Label(top, text = "Email").place(x = 30, y = 90)  
password = Label(top, text = "Lozinka").place(x = 30, y = 130) 

e1 = Entry(top).place(x = 80, y = 50)  
e2 = Entry(top).place(x = 80, y = 90)  
e3 = Entry(top).place(x = 95, y = 130)  

top.mainloop() 

Prikaz koda iz gornjeg primjera izgledaće ovako: