Tworzenie OKNA DIALOGOWEGO. Teacher of Computing – prywatne

https://wiki.python.org/moin/Intro%20to%20programming%20with%20Python%20and%20Tkinter

 

Celem jest stworzenie okna dialogowego, które będzie zawierało słownik. 

źródło: https://www.youtube.com/watch?v=_lSNIrR1nZU

Wynik kodu:

Kod:

from tkinter import *
# <-- wprowadzam funkcję zatwierdzająca wprowadzony tekst, to jest potrzebne później
# <-- ta funkcja gromadzi teksty z okienka wprowadzania tekstu
# <-- funkcja ma za zadanie znaleźć słowo w słowniku i w oknie definicji pokazać
# <-- definicję wyrazu
######### MOJE POLETKO FUNKCJI ##########
# 1. FUNKCJA SŁOWNIKA
def click():
      entered_text=textentry.get()
      output.delete(0.0, END)
      try:   #<-- To znaczy to samo co finkcja warunkowa if else
          definition = my_compdictionary[entered_text]
      except:
          definition = "przepraszam - tego słowa nie ma w naszym słowniku"
      output.insert(END, definition)

# <-- Definuje funkcję zamykającą cały program
# 2. FUNKCJA ZAMYKAJĄCA OKIENKO DIALOGOWE
def Zamykanie_okna():
    okno.destroy()
    exit()
# <-- Funkcję odpalamy na końcu ale funkcja ma być wyżej niż ląd odpalający command=

# <-- teraz są główne ustalenia kodu, okienka dialogowego
okno = Tk()
okno.title("Moje okno dialogowe")
# <-- Zrobiłem napis na pasku okna dialogowego
okno.configure(background="black")
# <-- Zrobiłem tło czarne żeby było fajnie
# <-- Tworze napis na pasku okienka dialogowego
# <-- Teraz będę wstawiał zdjęcie do okna dialogowego
photo1 = PhotoImage(file = "nn.png")
# <-- Zdjęcie ma być w katalogu, w którym jest projekt w formacie png lub gif
Label (okno, image = photo1, bg = "black") .grid(row=0, column=0, sticky=W)
# Teraz wprowadzam tekst, który ma poprzedzać okno wprowadzania tekstu.
Label(okno, text="Wprowadź słowo które lubisz z zasady:",
      bg="black", fg="yellow",
      font="none 12 bold") .grid(row=1, column=0, sticky=W)
# <-- fg="yellow" font color, to kolor liter na napisie
# <-- TERAZ TWORZE OKIENKO DO WPOWADZANIA TEKSTU:
textentry = Entry(okno, width=20, bg="white")
textentry.grid(row=2, column=0, sticky=W)
# <-- Teraz tworzę okienko akceprtacji tego co wpisałem
# <-- po command=click musi byc jakaś funkcja zatwierdzająca! taka funkcja zatwierdzająca
# <-- została wprowadzona na początku kodu def click():
# <-- teraz tworzę przycisk zatwierdzania wprowadzonego tekstu
Button(okno, text = "Zatwierdź", width = 9, command=click) .grid(row=3, column=0, sticky=W)
# <-- tworzę nowy napis na okienku dialogowym "Definicna tego:"
Label (okno, text="Definicja tego: ", bg="black", fg="white", font="none 12 bold") .grid(row=4, column=0, sticky=W)
# <-- tworzę kontenerek do tekstu
output = Text(okno, width=75, height=6, wrap=WORD, background="white")
output.grid(row=5, column=0, columnspan=2, sticky=W)
# <-- tworzenie słownika
my_compdictionary = {'Algorytm':'Krok po kroku według instrukcji realizujemy zadanie'
      ,'Pomyłka':'Zdarzenie niezgodnie z instrukcją'}

# <-- teraz tworzę napis końcowy wyjścia z programu
Label(okno, text="Kliknij tutaj aby wyjść z programu:", bg="black", fg="white", font="none 12 bold") .grid(row=6, column=0, sticky=W)

# <-- Dodaje przycisk zakończenia programu
Button(okno, text="Exit", width=14, command=Zamykanie_okna) .grid(row=7, column=0, sticky=W)
# <--parametr sticky=W znaczy West (zachód), a =E znaczy East wschód.
# <-- tam pojawił się też parametr command - trzeba do tego znowu napisać funkcję,
# <-- tym razem będzie to funkcja zamykająca cały program
# <-- WAŻNE: najpierw w kodzie ma byc funkcja a potem command=
# <-- Więc definiuje funkcję gdzieś wyżej - najlepiej zrobić oddzielne poletko do funkcji

okno.mainloop() # <-- niekończąca się pętla