Tkinter to zestaw narzędzi z graficznym interfejsem użytkownika (GUI), który powinieneś wypróbować, jeśli chcesz poznać moc Pythona w tworzeniu aplikacji komputerowych.
Tutaj przyjrzymy się podstawom modułu Tkinter GUI.
Konfiguracja Tkintera
Zazwyczaj nie trzeba instalować tkinter osobno, jeśli zainstalowałeś nowszą wersję Pythona, zaczynając od Pythona 3. Biblioteka może jednak nie działać ze starymi wersjami Pythona. Jest to powszechny problem dla użytkowników komputerów Mac i Linux, ponieważ te systemy operacyjne zwykle są domyślnie dostarczane ze starszymi wersjami Pythona.
Ogólnie, aby użyć use tkinter upewnij się, że pobierasz i instalujesz najnowszą kompatybilną wersję Pythona na swoim komputerze z oficjalnego python.org stronie internetowej.
Alternatywnie, jeśli korzystasz z komputera Mac, możesz pobrać najnowszą wersję ActiveTcl, a tkinter kompilator z Stan aktywny.
Jak korzystać z Tkintera
Tkinter zależy od jego wbudowanego TK klasa. I podsumowuje wszystkie wydarzenia w GUI w jednym
główna pętla. Więc główna pętla opakowanie sprawia, że twój tkinter kod wykonywalny.Na początek tkinter:
z tkinter import Tk
Tk().mainloop()
Uruchomienie powyższego kodu powoduje pustkę tkinter rama.
Funkcje dostosowywania Tkinter znajdują się jednak we wbudowanych widżetach.
Aby korzystać z tych widżetów, możesz je zaimportować z tkinter zastępując z tkinter import Tk z:
z importu tkinter *
t = Tk()
t.mainloop()
Możesz także dostosować rozmiar okna za pomocą geometria funkcji, a następnie określ tytuł za pomocą tytuł widget z tkinter:
t = Tk()
t.geometry("600x600")
t.title("Samouczek Tk")
t.mainloop()
Tkinter umożliwia pisanie zwykłych tekstów bezpośrednio do GUI za pomocą Etykieta widżet:
t = Tk()
Etykieta (t, tekst = "Samouczek MUO Tkinter").grid()
t.mainloop()
krata() metoda jest jednak alternatywą dla Pakiet() metoda. Przykleja widżety do GUI, dzięki czemu są widoczne.
Możesz także określić czcionkę dla swojego Etykieta tekst:
t = Tk()
Label (t, text = "Samouczek MUO Tkinter", font=(60)).grid()
t.mainloop()
Przyciski to jedne z najczęściej używanych widżetów w tkinter. Możesz dodać te klikalne przyciski do swojego GUI za pomocą różnych wbudowanych widżetów przycisków.
Oto jak dodać główny przycisk do GUI za pomocą Przycisk widżet:
t = Tk()
Przycisk (t, tekst = "Klikalny", bg = "czarny", fg = "biały").grid()
t.mainloop()
bg i fg słowa kluczowe opisują odpowiednio kolor tła przycisku i kolor tekstu w nim.
Możesz także dostosować rozmiar przycisku, dołączając wysokość i szerokość parametry:
t = Tk()
Przycisk (t, tekst = "Klikalny", bg = "czarny", fg = "biały", wysokość = "2", szerokość = "10").grid()
t.mainloop()
Oto wynik tego:
A jeśli chcesz, aby przycisk był bardziej atrakcyjny wizualnie, możesz dołączyć ulga słowo kluczowe, a następnie dostosuj jego szerokość obramowania:
t = Tk()
Przycisk (t, text="Klikalny", bg="niebieski", fg="biały",
wysokość=2, szerokość=10, relief=PODNIESIENIE, szerokość obramowania=6).grid()
t.mainloop()
A to wygląda tak:
Zastępować UNIESIONY z PŁASKI aby zobaczyć, jak to się stanie.
Możesz dodać dowolną liczbę przycisków. Ale uważaj, aby uniknąć nakładania się treści.
Aby uniknąć nakładania się, możesz określić pozycję wiersza i kolumny dla każdego przycisku:
t = Tk()
Przycisk (t, tekst=1, bg="czarny", fg="biały").grid (wiersz=1, kolumna=1)
Przycisk (t, tekst=2, bg="czarny", fg="biały").grid (wiersz=2, kolumna=1)
Przycisk (t, tekst=3, bg="czarny", fg="biały").grid (wiersz=3, kolumna=1)
Przycisk (t, tekst=4, bg="czarny", fg="biały").grid (wiersz=4, kolumna=1)
t.mainloop()
Opcjonalny Komenda słowo kluczowe dodaje jednak zdarzenia do Przycisk widget. Zasadniczo zakotwicza opcjonalną funkcję, która obsługuje określone zdarzenia po kliknięciu przycisku.
Poniższy kod, na przykład, mnoży wartość każdego przycisku przez 6 po kliknięciu. I opiera się na predefiniowanej funkcji:
def naciśnięcie przycisku (r):
r = 6*r
Etykieta (t, tekst=r, czcionka=(60)).grid (wiersz=5, kolumna=2)
t = Tk()
Przycisk (t, tekst = 1, bg = "czarny", fg = "biały", szerokość = 10, wysokość = 2,
polecenie = lambda: wciśnięcie przycisku (1)).grid (wiersz=1, kolumna = 1, pady = 6)
Przycisk (t, tekst = 2, bg = "czarny", fg = "biały", szerokość = 10,
polecenie = lambda: wciśnięcie przycisku (2)).grid (wiersz = 2, kolumna = 1, pady = 6)
Przycisk (t, tekst = 3, bg = "czarny", fg = "biały", szerokość = 10,
polecenie = lambda: wciśnięcie przycisku (3)).grid (wiersz = 3, kolumna = 1, pady = 6)
Przycisk (t, tekst = 4, bg = "czarny", fg = "biały", szerokość = 10,
polecenie = lambda: wciśnięcie przycisku (4)).grid (wiersz = 4, kolumna = 1, pady = 6)
t.mainloop()
W powyższym kodzie, naciśnięcie przycisku obsługuje zdarzenie mnożenia. Przycisk widget następnie wskazuje na ten program obsługi zdarzeń za pomocą anonimowego lambda funkcjonować.
A jeśli martwisz się o pady słowo kluczowe, wyraźnie oddziela każdy przycisk w wierszu. Zastępując to padx oddziela przyciski w całej kolumnie. Możesz użyć obu słów kluczowych jednocześnie, aby rozdzielić przyciski na obu osiach, jak chcesz.
To powiedziawszy, nie chcesz wymyślać na nowo koła dla każdego przycisku, jak to zrobiłeś w poprzednim kodzie. Spowalnia to czas wykonywania, a ponadto utrudnia odczytywanie i zawężanie kodu.
Ale ty możesz użyj pętli for aby uniknąć tego powtórzenia.
Oto krótsza i lepsza wersja powyższego kodu:
def naciśnięcie przycisku (r):
r = 6*r
Etykieta (t, tekst = r, czcionka = (60)).grid (wiersz = 5, kolumna = 2)
t = Tk()
a = [1, 4, 6, 7]
dla mnie w:
j = lambda y = i: naciśnięcie przycisku (y)
Przycisk (t, tekst = i, bg = "czarny", fg = "biały", szerokość = 10, wysokość = 2,
command=j).grid (wiersz = i, kolumna = 1, pady = 6)
t.mainloop()
Przyciski menu i przyciski wyboru
Przyjrzyjmy się dalej mocy dla pętla, aby dodać przyciski menu do GUI:
z importu tkinter *
t = Tk()
przyciski = ["Pliki", "Pulpit nawigacyjny", "Menu", "Ustawienia", "Pomoc"]
m = 0
dla i w zakresie (len (przyciski)):
# Pobieraj każdy tekst w tablicy przycisków przy użyciu indeksu listy wraz ze wzrostem m.
# Następnie niech kolumna wzrośnie o 1 przez długość tablicy:
Menubutton (t, tekst=przyciski[m], bg="niebieski", fg="biały").grid (wiersz=5, kolumna=i)
m += 1
t.mainloop()
Dodanie przycisków wyboru do GUI jest również dość łatwe:
t = Tk()
Checkbutton (t, text = "Wybierz opcję").grid()
t.mainloop()
Zapraszam do pomnożenia tego przycisku wyboru za pomocą dla pętla, jak to zrobiliśmy wcześniej.
Menu widget pozwala zaprojektować klikalne menu rozwijane w tkinter.
Jak stwierdziłem wcześniej, tkinter oferuje wiele opcji widgetów. Niektórych z nich użyjesz podczas projektowania rozwijanego menu.
Oto niektóre z typowych opcji widżetów, które można napotkać podczas tworzenia listy rozwijanej:
- add_cascade: Wyświetla etykietę menu i przykleja ją tam, gdzie należy.
- add_separator: Wyznacza podmenu i grupuje je w podmenu górne i dolne.
- add_command: W tym miejscu nadajesz nazwę swojemu podmenu. Ostatecznie akceptuje argument polecenia, w którym można określić procedurę obsługi zdarzeń.
Oto przykład rozwijany, który wykorzystuje te trzy opcje:
z importu tkinter *
t = Tk()
fileOptions = ["Nowy", "otwórz", "Zapisz", "Zapisz jako"]
fileOptionsAfterseparator = ["Importuj", "Eksportuj", "Wyjdź"]
viewOptions = ["Przekształć", "Edytuj", "Utwórz"]
menuBar = Menu (t)
plik = Menu (menuBar, odrywanie=0)
dla i w fileOptions:
file.add_command (etykieta=i, polecenie=Brak)
plik.dodaj_separator()
for i w plikuOpcjePo separatorze:
file.add_command (etykieta=i, polecenie=Brak)
menuBar.add_cascade (etykieta="Plik", menu=plik)
Widok = Menu (menuBar, oderwanie=0)
for i in viewOpcje:
View.add_command (etykieta=i, polecenie=Brak)
menuBar.add_cascade (label="Widok", menu=Widok)
t.config (menu=menuBar)
t.mainloop()
Zobacz, jak to wygląda:
Menu opcji Tkintera
jakiś Menu opcji, w przeciwieństwie do Menu rozwijanej, przełącza jej etykietę na wybraną opcję.
Chociaż można określić domyślną wartość etykiety dla menu opcji, domyślnie nie ma ono etykiety.
Związane z: Pomysły na projekty w Pythonie odpowiednie dla początkujących
Oto jak utworzyć menu opcji w tkinter:
t = Tk()
Omenu = StringVar() #ustaw typ zmiennej opcji
Omenu.set("MUO") #określ domyślną wartość ikony menu
OptionMenu (t, Omenu, "MUO", "Amazon", "Samouczek").grid()
t.mainloop()
Zbuduj aplikację komputerową wielokrotnego użytku z Tkinter
Tkinter oferuje szereg funkcji, które pomagają tworzyć interaktywne aplikacje komputerowe z interfejsem GUI. Chociaż może nie mieć wielu elastycznych funkcji upiększających, jak niektóre inne moduły GUI Pythona, nadal jest przydatnym narzędziem, które warto poznać. I chociaż przykłady tutaj pokazują tylko niektóre z podstawowych pojęć, tkinter oferuje bardziej zaawansowane funkcje, które możesz wypróbować.
To powiedziawszy, możesz zbudować kalkulator pulpitu GUI, stworzyć mini edytor tekstu, a nawet utworzyć aplikację komputerową GUI do zarządzania zapasami. Jeśli chcesz rozwinąć skrzydła i zostać głównym GUI na pulpicie, możesz nawet sprawdzić inne moduły GUI Pythona.
Czy używasz GUI? Są szanse, że masz, ponieważ używasz ich każdego dnia.
Czytaj dalej
- Programowanie
- Pyton
Idowu pasjonuje się każdą inteligentną technologią i produktywnością. W wolnych chwilach bawi się kodowaniem, a gdy się nudzi, przechodzi na szachownicę, ale od czasu do czasu uwielbia też oderwać się od rutyny. Jego pasja do pokazywania ludziom drogi do nowoczesnych technologii motywuje go do pisania więcej.
Zapisz się do naszego newslettera
Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Kliknij tutaj, aby zasubskrybować