Python to wszechstronny język programowania, którego można używać do implementowania różnego rodzaju aplikacji. Posiada wiele typów modułów do tworzenia aplikacji opartych na GUI (graficznym interfejsie użytkownika). Jednym z nich jest Python Tkinter. Dowolną aplikację komputerową można łatwo zaimplementować za pomocą modułu tkinter. Lepiej będzie, jeśli posiadasz podstawową wiedzę na temat programowania w Pythonie, aby poznać zastosowania modułu Python tkinter. W tym samouczku pokazano różne zastosowania modułu Python tkinter do tworzenia aplikacji GUI.
Zainstaluj moduł Tkinter
Moduł tkinter nie jest domyślnie instalowany w Pythonie. Musisz więc uruchomić następującą komendę, aby zainstalować moduł tkinter w wersji Python 3+:
$ sudo trafny zainstalować python3-tk
Różne widżety Tkinter
Moduł tkinter zawiera różne widżety do różnych celów.
Nazwa widżetu | Zamiar |
Etykieta | Służy do wyświetlania komunikatu pomocy dla użytkownika. |
Przycisk | Służy do dodawania różnych przycisków w aplikacji. |
Rama | Działa jak kontener widżetów, który zawiera różne typy widżetów do projektowania zorganizowanego formularza. |
Wejście | Służy do pobierania od użytkownika jednowierszowego tekstu. |
Przycisk wyboru | Służy do dodawania przycisków pól wyboru, aby pobierać od użytkownika wiele danych wejściowych z wielu opcji. |
Przycisk radiowy | Służy do dodawania przycisków opcji, aby pobrać pojedyncze dane wejściowe od użytkownika z wielu opcji. |
Przycisk Comboboxa | Służy do dodania listy rozwijanej, w której można pobrać pojedyncze dane wejściowe od użytkownika z wielu opcji. |
Skrzynka na listy | Służy do dodania pola listy w celu pobrania wielu danych wejściowych od użytkownika z wielu opcji. |
Tekst | Służy do pobierania od użytkownika wielowierszowego tekstu. |
Wiadomość | Służy do wyświetlenia okna komunikatu dla użytkownika. |
Pasek przewijania | Służy do dodania paska przewijania w oknie, aby przewijać okno w górę i w dół. |
Przycisk MENU | Służy do wyświetlania menu użytkownikowi. |
Menu | Służy do wyświetlania użytkownikowi pozycji menu. |
Okno okienne | Działa jak kontener widżetów zawierający panele poziome i pionowe. |
Zakładki | Służy do dodania okna zakładki w aplikacji. |
Różne przykłady Tkintera
W poniższych przykładach pokazano wykorzystanie niektórych popularnych widżetów Tkinter.
Przykład 1: Utwórz prostą aplikację z graficznym interfejsem użytkownika
Utwórz plik Pythona z następującą zawartością, który wyświetli okno dialogowe na środku ekranu z tytułem oraz określoną wysokością i szerokością:
#Importuj niezbędny moduł
z importu Tkinter *
#Utwórz obiekt dla okna
tkobj = Tk ( )
#Ustaw tytuł okna
tkobj.title ( „Naucz się modułu Tkinter” )
#Ustaw wysokość i szerokość okna
tkobj.geometria ( „300x150” )
#Ustaw pozycję wyświetlania okna centralnie
tkobj.eval ( 'tk::PlaceWindow . Centrum' )
#Uruchom Tkintera
tkobj.mainloop ( )
Wyjście:
Po wykonaniu skryptu pojawiają się następujące dane wyjściowe. Wyświetlone zostanie okno dialogowe z tytułem „Naucz się modułu Tkinter”:
Przykład 2: Użycie etykiety i przycisku
Utwórz plik Pythona za pomocą następującego skryptu, który wyświetli okno z etykietą i oknem dialogowym:
#Importuj niezbędny modułz importu Tkinter *
#Utwórz obiekt dla okna
tkobj = Tk ( )
#Ustaw tytuł okna
tkobj.title ( „Naucz się modułu Tkinter” )
#Ustaw wysokość i szerokość okna
tkobj.geometria ( „400x150” )
#Zdefiniuj obiekt etykiety
lbl = etykieta ( tkobj, tekst = „To proste okno” )
#Dodaj etykietę do okna
lbl.opakowanie ( ipadx = 30 , iPady = 20 )
#Zdefiniuj obiekt przycisku
btn = przycisk ( tkobj, tekst = 'Kliknij' )
#Dodaj przycisk do okna z pozycją
btn.pack ( ipadx = 30 , iPady = 10 )
#Ustaw pozycję wyświetlania okna centralnie
tkobj.eval ( 'tk::PlaceWindow . Centrum' )
#Uruchom Tkintera
tkobj.mainloop ( )
Wyjście:
Po wykonaniu skryptu na środku ekranu pojawia się okno z etykietą i przyciskiem.
Przykład 3: Ustaw kolor czcionki i kolor tła
Utwórz plik w języku Python za pomocą poniższego skryptu, który wyświetli okno z etykietą i kolorowym przyciskiem. Tutaj atrybut tła służy do ustawiania koloru tła przycisku, a atrybut pierwszego planu służy do ustawiania koloru czcionki przycisku:
#Importuj niezbędny modułz importu Tkinter *
#Utwórz obiekt dla okna
tkobj = Tk ( )
#Ustaw tytuł okna
tkobj.title ( „Naucz się modułu Tkinter” )
#Ustaw wysokość i szerokość okna
tkobj.geometria ( „400x150” )
#Zdefiniuj obiekt etykiety
lbl = etykieta ( tkobj, tekst = „Ustaw kolor tła i pierwszego planu” )
#Dodaj etykietę do okna
lbl.opakowanie ( ipadx = 30 , iPady = 20 )
#Zdefiniuj obiekt przycisku z kolorem tła i pierwszego planu
btn = przycisk ( tkobj, tekst = 'Kliknij' , tło = 'niebieski' , pierwszoplanowy = 'czerwony' )
#Dodaj przycisk do okna z pozycją
btn.pack ( ipadx = 30 , iPady = 8 )
#Ustaw pozycję wyświetlania okna centralnie
tkobj.eval ( 'tk::PlaceWindow . Centrum' )
#Uruchom Tkintera
tkobj.mainloop ( )
Wyjście:
Po wykonaniu skryptu pojawia się następujące okno:
Przykład 4: Użycie ramki
W poniższym skrypcie Pythona w widżecie ramki są pokazane etykieta i dwa przyciski. Utwórz plik Pythona ze skryptem, aby sprawdzić dane wyjściowe:
#Importuj niezbędny modułz importu Tkinter *
#Utwórz obiekt dla okna
tkobj = Tk ( )
#Ustaw tytuł okna
tkobj.title ( „moduł Tkintera” )
#Ustaw wysokość i szerokość okna
tkobj.geometria ( „250x100” )
#Zdefiniuj obiekty ramki
frm = ramka ( tkobj )
pakiet.frm ( )
lramka = ramka ( tkobj )
lframe.pack ( strona =LEWO )
rframe = ramka ( tkobj )
rframe.pack ( strona =PRAWO )
#Zdefiniuj etykietę wewnątrz ramki
lbl = etykieta ( od, tekst = „Korzystanie z ramki” , fot = 'niebieski' )
lbl.opakowanie ( )
#Zdefiniuj przyciski wewnątrz ramki
btn1 = Przycisk ( ramka, tekst = „” , fot = 'czarny' , bg = 'biały' )
btn2.pack ( strona =PRAWO )
#Ustaw pozycję wyświetlania okna centralnie
tkobj.eval ( 'tk::PlaceWindow . Centrum' )
#Uruchom Tkintera
tkobj.mainloop ( )
Wyjście:
Po wykonaniu skryptu pojawiają się następujące dane wyjściowe:
Przykład 5: Obsługa zdarzenia przycisku
Korzystanie z okna komunikatu pokazano w poniższym skrypcie. Okno komunikatu jest wyświetlane po kliknięciu przycisku:
#Importuj niezbędne modułyz importu Tkinter *
ze skrzynki wiadomości importu Tkinter
#Utwórz obiekt dla okna
tkobj = Tk ( )
#Ustaw tytuł okna
tkobj.title ( „Naucz się modułu Tkinter” )
#Ustaw wysokość i szerokość okna
tkobj.geometria ( „400x150” )
#Zdefiniuj funkcję wyświetlającą okno komunikatu
zdecydowanie wyświetlacz ( ) :
Messagebox.showinfo ( 'Informacja' , „Przycisk został kliknięty”. )
#Utwórz tekst etykiety z kolorem, stylem i pozycją czcionki
Etykieta ( tkobj, tekst = „Aplikacja komputerowa korzystająca z Tkinter”. , fot = 'zielony' ) .Pakiet ( Niełuskany = 25 )
#Utwórz przycisk za pomocą modułu obsługi przycisków
Przycisk ( tkobj, tekst = 'Pokaż wiadomość' , Komenda =wyświetlacz ) .Pakiet ( )
#Ustaw pozycję wyświetlania okna centralnie
tkobj.eval ( 'tk::PlaceWindow . Centrum' )
#Uruchom Tkintera
tkobj.mainloop ( )
Wyjście:
Po wykonaniu skryptu pojawia się następujące okno:
Po naciśnięciu przycisku pojawia się następujący komunikat:
Przykład 6: Pobieranie danych wejściowych od użytkownika
W module tkinter dostępnych jest wiele widżetów umożliwiających pobieranie danych od użytkownika. Zastosowania najpopularniejszych widżetów pokazano w poniższym skrypcie. Utwórz plik Pythona z następującym kodem, aby sprawdzić dane wyjściowe:
#Importuj niezbędne modułyz importu Tkinter *
z tkinter.ttk import Combobox
z tkinter import ttk
importuj tkintera Jak tk
ze skrzynki wiadomości importu Tkinter
#Utwórz obiekt Tkinter
tkobj = Tk ( )
#Ustaw tytuł okna
tkobj.title ( „Formularz informacji o użytkowniku” )
#Ustaw wysokość i szerokość okna
tkobj.geometria ( „550x320” )
#Zdefiniuj funkcję wyświetlającą wartości formularza
def wartości_wyświetlane ( ) :
#Czytaj tekst jednowierszowy
imię = 'Nazwa : ' + nazwa_val.get ( ) + ' \N '
#Przeczytaj wybraną wartość przycisku radiowego
Jeśli płeć.get ( ) == 1 :
g = 'Mężczyzna'
w przeciwnym razie:
g = 'Kobieta'
g = 'Płeć : ' + g + ' \N '
#Przeczytaj wybrane wartości pól wyboru
gra = „”
Jeśli g1.get ( ) == 1 :
gra = 'Krykiet'
Jeśli g2.get ( ) == 1 :
Jeśli gra ! = „” :
gra += „”, „ + 'Piłka nożna'
w przeciwnym razie:
gra = 'Piłka nożna'
Jeśli g3.get ( ) == 1 :
Jeśli gra ! = „” :
gra += „”, „ + 'Koszykówka'
w przeciwnym razie:
gra = 'Koszykówka'
gra = 'Gra : ' + gra + ' \N '
#Przeczytaj wartości comboboxa
kraj = 'Kraj : ' + countryVal.get ( ) + ' \N '
#Przeczytaj tekst wielowierszowy
adres = 'Adres : ' + adres.get ( „1,0” , 'koniec' ) + ' \N '
#Scal wszystkie wartości pobrane przez pola
form_values = nazwa + g + gra + kraj + adres
#Wyświetl wartości w oknie komunikatu
Messagebox.showinfo ( „Szczegóły informacji o użytkowniku” , wartości_formularzy )
#Utwórz etykietę i pole nazwy
Etykieta ( tkobj, tekst = 'Nazwa : ' ) .miejsce ( X = 100 , I = 20 )
name_val = StringVar ( )
ttk.Wpis ( tkobj, zmienna tekstowa = nazwa_wartość ) .Pakiet ( Padx = 220 , Niełuskany = 20 )
#Utwórz etykietę i przycisk radiowy
Etykieta ( tkobj, tekst = 'Płeć : ' ) .miejsce ( X = 100 , I = 60 )
płeć = IntVar ( )
zestaw.płci ( 1 )
Przycisk radiowy ( tkobj, tekst = 'Mężczyzna' , zmienny = płeć, wartość = 1 ) .miejsce ( X = 210 , I = 60 )
Przycisk radiowy ( tkobj, tekst = 'Kobieta' , zmienny = płeć, wartość = 2 ) .miejsce ( X = 290 , I = 60 )
#Utwórz etykietę i przycisk pola wyboru
Etykieta ( tkobj, tekst = 'Ulubiona gra : ' ) .miejsce ( X = 100 , I = 100 )
g1 = Zm.międzyst ( )
g2 = Zm.Całkowita ( )
g3 = Zm.międzyst ( )
Przycisk wyboru ( tkobj, tekst = 'Krykiet' , zmienny =g1 ) .miejsce ( X = 210 , I = 100 )
Przycisk wyboru ( tkobj, tekst = 'Piłka nożna' , zmienny =g2 ) .miejsce ( X = 290 , I = 100 )
Przycisk wyboru ( tkobj, tekst = 'Koszykówka' , zmienny =g3 ) .miejsce ( X = 380 , I = 100 )
#Zdefiniuj wartości krotek
dane = ( 'Bangladesz' , 'Japonia' , 'USA' )
#Utwórz etykietę i combobox
Etykieta ( tkobj, tekst = 'Kraj : ' ) .miejsce ( X = 100 , I = 140 )
countryVal = StringVar ( )
Combobox ( tkobj, wartości =dane, zmienna tekstowa =wartość kraju ) .miejsce ( X = 220 , I = 140 )
#Utwórz etykietę i pole tekstowe
Etykieta ( tkobj, tekst = 'Adres : ' ) .miejsce ( X = 100 , I = 180 )
adres = ( tk.Tekst ( tkobj, wysokość = 3 , szerokość = 20 ) )
adres.miejsce ( X = 220 , I = 180 )
#Utwórz przycisk za pomocą modułu obsługi przycisków
Przycisk ( tkobj, tekst = 'Składać' , Komenda =wartości_wyświetlane ) .miejsce ( X = 250 , I = 250 )
#Uruchom Tkintera
tkobj.mainloop ( )
Wyjście:
Po wykonaniu skryptu pojawia się następujące okno:
Wypełnij pola formularza i naciśnij przycisk „Wyślij”.
Pojawi się następujące okno komunikatu z przesłanymi wartościami:
Wniosek
Metody wykorzystania modułu Python tkinter do tworzenia aplikacji GUI zostały pokazane w tym samouczku na wielu przykładach.