Zacznij tworzyć aplikacje desktopowe w Pythonie za pomocą biblioteki GUI Tkinter

Zacznij tworzyć aplikacje desktopowe w Pythonie za pomocą biblioteki GUI Tkinter

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.





najlepsza rzecz do obejrzenia na youtube

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ć tkinter upewnij się, że pobierasz i instalujesz najnowszą kompatybilną wersję Pythona na swoim komputerze z oficjalnego python.org Strona internetowa.

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 :





from 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:

from tkinter import *
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('Tk Tutorial')
t.mainloop()

Widżet etykiet Tkinter

Tkinter umożliwia pisanie zwykłych tekstów bezpośrednio do GUI za pomocą Etykieta widżet:

t = Tk()
Label(t, text = 'MUO Tkinter tutorial').grid()
t.mainloop()

ten siatka() 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 = 'MUO Tkinter tutorial', font=(60)).grid()
t.mainloop()

Praca z widżetami przycisków w Tkinter

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()
Button(t, text = 'Clickable', bg = 'black', fg = 'white').grid()
t.mainloop()

ten bg oraz 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 wzrost oraz szerokość parametry:

t = Tk()
Button(t, text = 'Clickable', bg = 'black', fg = 'white', , ).grid()
t.mainloop()

Oto wynik tego:

podwójny rozruch systemu Windows 10 i linux

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()
Button(t, text='Clickable', bg='blue', fg='white',
height=2, width=10, relief=RAISED, borderwidth=6).grid()
t.mainloop()

A to wygląda tak:

Zastępować UNIESIONY z MIESZKANIE 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()
Button(t, text=1, bg='black', fg='white').grid(row=1, column=1)
Button(t, text=2, bg='black', fg='white').grid(row=2, column=1)
Button(t, text=3, bg='black', fg='white').grid(row=3, column=1)
Button(t, text=4, bg='black', fg='white').grid(row=4, column=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 buttonpress(r):
r = 6*r
Label(t, text=r, font=(60)).grid(row=5, column=2)
t = Tk()
Button(t, text = 1, bg = 'black', fg = 'white', width = 10, height = 2,
command = lambda:buttonpress(1)).grid(row=1, column = 1, pady = 6)
Button(t, text = 2, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(2)).grid(row = 2, column = 1, pady = 6)
Button(t, text = 3, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(3)).grid(row = 3, column = 1, pady = 6)
Button(t, text = 4, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(4)).grid(row = 4, column = 1, pady = 6)
t.mainloop()

W powyższym kodzie, naciśnięcie przycisku obsługuje zdarzenie mnożenia. ten 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 buttonpress(r):
r = 6*r
Label(t, text = r, font = (60)).grid(row = 5, column = 2)
t = Tk()
a = [1, 4, 6, 7]
for i in a:
j = lambda y = i:buttonpress(y)
Button(t, text = i, bg = 'black', fg = 'white', width = 10, height = 2,
command=j).grid(row = i, column = 1, pady = 6)
t.mainloop()

Przyjrzyjmy się dalej mocy dla pętla, aby dodać przyciski menu do GUI:

from tkinter import *
t = Tk()
buttons = ['Files', 'Dashboard', 'Menu', 'Settings', 'Help']
m = 0
for i in range(len(buttons)):
# Get each text in the buttons array using a list index as m increases.
# Then let the column increase by 1 through the length of the array:

Menubutton(t, text=buttons[m], bg='blue', fg='white').grid(row=5, column=i)
m += 1
t.mainloop()

Dodanie przycisków wyboru do GUI jest również dość łatwe:

t = Tk()
Checkbutton(t, text = 'Select option').grid()
t.mainloop()

Zapraszam do pomnożenia tego przycisku wyboru za pomocą dla pętla, tak jak to zrobiliśmy wcześniej.

Jak utworzyć menu rozwijane za pomocą widżetu menu Tkinter?

ten 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:

from tkinter import *
t = Tk()
fileOptions = ['New', 'open', 'Save', 'Save as']
fileOptionsAfterseparator = ['Import', 'Export', 'Exit']
viewOptions = ['Transform', 'Edit', 'Create']
menuBar = Menu(t)
file = Menu(menuBar, tearoff=0)
for i in fileOptions:
file.add_command(label=i, command=None)
file.add_separator()
for i in fileOptionsAfterseparator:
file.add_command(label=i, command=None)
menuBar.add_cascade(label='File', menu=file)
View = Menu(menuBar, tearoff=0)
for i in viewOptions:
View.add_command(label=i, command=None)
menuBar.add_cascade(label='View', menu=View)
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() #set the variable type of the options
Omenu.set('MUO') #specify a default value for the menu icon
OptionMenu(t, Omenu, 'MUO', 'Amazon', 'Tutorial').grid()
t.mainloop()

Zbuduj aplikację komputerową wielokrotnego użytku z Tkinter

Tkinter oferuje szereg funkcji, które pomagają w tworzeniu interaktywnych aplikacji komputerowych z graficznym interfejsem użytkownika. 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ć.

co się stanie, gdy opuścisz Facebooka

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ć specjalistą od graficznego interfejsu użytkownika, możesz nawet sprawdzić inne moduły GUI Pythona.

Udział Udział Ćwierkać E-mail GUI? Co to jest graficzny interfejs użytkownika?

Czy używasz GUI? Są szanse, że masz, ponieważ używasz ich każdego dnia.

Czytaj dalej
Powiązane tematy
  • Programowanie
  • Pyton
O autorze Idisou Omisola(94 opublikowane artykuły)

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.

Więcej od Idowu Omisola

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ć