Education © 2017 • Created with WebWave
Pasjonatg@gmail.com
Zapraszam do współpracy
W tym poradniku stworzymy kalkulator graficzny z podstawowymi funkcjami typu dodawanie, odejmowanie, mnożenie, dzielenie.
Zaczniemy od uruchomienia IDLE Python z pasku aplikacji:
Następnie tworzymy nowy plik: file -- new file:
W nowym oknie warto dać options -> Hide Line number, żeby po kolei każdy wiersz był numerowany.
Tworzenie kalkulatora w wersji graficznej :
Poniżej zamieszczam kod źródłowy wraz z jego omówieniem (wpisujemy linijka po linijce), żeby wszystko było jasne.
import tkinter // komenda odpowiedzialna za import biblioteki w języku Python, która umożliwia wgrywanie grafik
zrodlo = tkinter.Tk() // wprowadzamy zmieną "zrodlo" ktora tworzy obszar graficzny w naszym programie
zrodlo.title("Kalkulator graficzny") // kod odpowiedzialny za nazwę naszego programu na pasku
# dzialania kalkulatora
ekspresja = "" // kod odpowiedzialny wywołanie działań kalkulatora
# Tworzone funkcje
def dodaj(value): // kod odpowiedzialny za defincję operacji i dodania wartości z kalkulatora
global ekspresja // kod odpowiedzialny za dodanei globalnej wartości dla działania kalkulatora
ekspresja += value // kod odpowiedzialny za dodanie działania kalkulatora przyjętej jako wartości z przycisków
etykieta_wynik.config(text=ekspresja) // kod odpowiedzialny za dodanie tekstu do wyniku kalkulatora
def wyzeruj(): // kod odpowiedzialny za dodanie operacji zerowania kalkulatora
global ekspresja // kod odpowiedzialny za dodanei globalnej wartości dla działania kalkulatora
ekspresja ="" // kod odpowiedzialny za dodanie działania kalkulatora do wyświetlania
etykieta_wynik.config(text=ekspresja) // kod odpowiedzialny za dodanie tekstu do wyniku kalkulatora
def wylicz(): // kod odpowiedzialny za dodanie operacji działania (liczenia) kalkulatora
global ekspresja // kod odpowiedzialny za dodanie operacji zerowania kalkulatora
wynik = "" // kod odpowiedzialny za dodanie wyniku kalkulatora do wyświetlania
if ekspresja != "": // jeżeli zmienna działania nie jest równa przyjętej wartości
try: // jeżeli zmienna działania nie jest równa przyjętej wartości to próbuj wywołać
wynik = eval(ekspresja) / jeżeli zmienna działania nie jest równa przyjętej wartości to przekaż do tej metody i uruchamia kod
except: // jeżeli zmienna działania nie jest równa przyjętej wartości wywołaj
wynik = "error" // jeżeli zmienna działania nie jest równa przyjętej wartości dodaj tekst error
ekspresja = "" // kod odpowiedzialny za dodanie działania kalkulatora do wyświetlania
etykieta_wynik.config(text=wynik) // kod odpowiedzialny za dodanie tekstu do wyniku kalkulatora
# Tworzone GUI - grafika // dodanie komentarza do kodu, przydatne do grupowania kodu w programie
etykieta_wynik = tkinter.Label(zrodlo, text="") // kod odpowiedzialny za tworzenie pierwszego nagłówka w kalkulatorze , traktowany jako tekst
etykieta_wynik.grid(row=0, column=0, columnspan=4) // kod odpowiedzialny za tworzenie grafiki do nagłownka wynik dla wiersza 0 i kolumny 0 (pierwsza pozycja na kalkulatorze)
przycisk_1 = tkinter.Button(zrodlo, text = "1", bg ="yellow", command = lambda: dodaj("1")) // kod, który odpowiada za element typu przycisk na kalkulatorze dla cyfry 1
przycisk_1.grid(row=1, column=0) // kod odpowiedzialny za rysowanie grafiki przycisku 1 , dla 1 wiersza i 0 kolumny
przycisk_2 = tkinter.Button(zrodlo, text = "2", bg ="yellow", command = lambda: dodaj("2")) // kod, który odpowiada za element typu przycisk na kalkulatorze dla cyfry 2
przycisk_2.grid(row=1, column=1) // kod odpowiedzialny za rysowanie grafiki przycisku 2 , dla 1 wiersza i 1 kolumny
przycisk_3 = tkinter.Button(zrodlo, text = "3", bg ="yellow", command = lambda: dodaj("3")) // kod, który odpowiada za element typu przycisk na kalkulatorze dla cyfry 3
przycisk_3.grid(row=1, column=2) // kod odpowiedzialny za rysowanie grafiki przycisku 3 , dla 1 wiersza i 2 kolumny
przycisk_dzielenie = tkinter.Button(zrodlo, text = "/", bg ="cyan", command = lambda: dodaj("/")) // kod, który odpowiada za element typu przycisk na kalkulatorze dla operacji dzielenia
przycisk_dzielenie.grid(row=1, column=3) // kod odpowiedzialny za rysowanie grafiki przycisku dzielenia , dla 1 wiersza i 3 kolumny
przycisk_4 = tkinter.Button(zrodlo, text = "4", bg ="green", command = lambda: dodaj("4")) / / kod, który odpowiada za element typu przycisk na kalkulatorze dla dla cyfry 4
przycisk_4.grid(row=2, column=0) // kod odpowiedzialny za rysowanie grafiki przycisku 4 , dla 2 wiersza i 0 kolumny
przycisk_5 = tkinter.Button(zrodlo, text = "5", bg ="green", command = lambda: dodaj("5")) / / kod, który odpowiada za element typu przycisk na kalkulatorze dla dla cyfry 5
przycisk_5.grid(row=2, column=1) // kod odpowiedzialny za rysowanie grafiki przycisku 5 , dla 2 wiersza i 1 kolumny
przycisk_6 = tkinter.Button(zrodlo, text = "6", bg ="green", command = lambda: dodaj("6")) / / kod, który odpowiada za element typu przycisk na kalkulatorze dla dla cyfry 6
przycisk_6.grid(row=2, column=2) // kod odpowiedzialny za rysowanie grafiki przycisku 2 , dla 1 wiersza i 2 kolumny
przycisk_mnozenie = tkinter.Button(zrodlo, text = "*", bg ="cyan", command = lambda: dodaj("*")) / / kod, który odpowiada za element typu przycisk na kalkulatorze dla operacji mnożenia
przycisk_mnozenie.grid(row=2, column=3) // kod odpowiedzialny za rysowanie grafiki przycisku mnozenia , dla 2 wiersza i 3 kolumny
przycisk_7 = tkinter.Button(zrodlo, text = "7", bg ="white", command = lambda: dodaj("7")) / / kod, który odpowiada za element typu przycisk na kalkulatorze dla przycisku 7
przycisk_7.grid(row=3, column=0) // kod odpowiedzialny za rysowanie grafiki przycisku 7 , dla 3 wiersza i 0 kolumny
przycisk_8 = tkinter.Button(zrodlo, text = "8", bg ="white", command = lambda: dodaj("8")) / / kod, który odpowiada za element typu przycisk na kalkulatorze dla przycisku 8
przycisk_8.grid(row=3, column=1) // kod odpowiedzialny za rysowanie grafiki przycisku8 , dla 3 wiersza i 1 kolumny
przycisk_9 = tkinter.Button(zrodlo, text = "9", bg ="white", command = lambda: dodaj("9")) / / kod, który odpowiada za element typu przycisk na kalkulatorze dla przycisku 9
przycisk_9.grid(row=3, column=2) // kod odpowiedzialny za rysowanie grafiki przycisku 9 , dla 3 wiersza i 2 kolumny
przycisk_odejmowanie = tkinter.Button(zrodlo, text = "-", bg ="cyan", command = lambda: dodaj("-")) // kod, który odpowiada za element typu przycisk na kalkulatorze dla operacji odejmowania
przycisk_odejmowanie.grid(row=3, column=3) // kod odpowiedzialny za rysowanie grafiki przycisku odejmowania , dla 3 wiersza i 3 kolumny
przycisk_wyzeruj = tkinter.Button(zrodlo, text = "C", command = lambda: wyzeruj()) // kod, który odpowiada za element typu przycisk na kalkulatorze dla operacji kasowania
przycisk_wyzeruj.grid(row=4, column=0) // kod odpowiedzialny za rysowanie grafiki przycisku kasowania , dla 4 wiersza i 0 kolumny
przycisk_0 = tkinter.Button(zrodlo, text = "0", command = lambda: dodaj("0")) // kod, który odpowiada za element typu przycisk na kalkulatorze dla przycisku 0
przycisk_0.grid(row=4, column=1) // kod odpowiedzialny za rysowanie grafiki przycisku 0 , dla 4 wiersza i 1 kolumny
przycisk_kropka = tkinter.Button(zrodlo, text = ".", command = lambda: dodaj(".")) // kod, który odpowiada za element typu przycisk na kalkulatorze dla przycisku . (kropka)
przycisk_kropka.grid(row=4, column=2) // kod odpowiedzialny za rysowanie grafiki przycisku 0 , dla 4 wiersza i 2 kolumny
przycisk_suma = tkinter.Button(zrodlo, text = "+", bg ="cyan", command = lambda: dodaj("+")) // kod, który odpowiada za element typu przycisk na kalkulatorze dla operacji dodawania
przycisk_suma.grid(row=4, column=3) // kod odpowiedzialny za rysowanie grafiki przycisku dodawania , dla 4 wiersza i 3 kolumny
przycisk_rownasie = tkinter.Button(zrodlo, text = "=", width=16, bg ="lavender", command = lambda: wylicz ()) // kod, który odpowiada za element typu przycisk na kalkulatorze dla liczenia
przycisk_rownasie.grid(row=5, column=0, columnspan=4) # columnpan odleglosc kolumny // kod odpowiedzialny za rysowanie grafiki przycisku dodawania , dla 5 wiersza i 0 kolumny
etykieta_podpis = tkinter.Label(zrodlo, bg ="tomato", text="Created by pasjonatg") // kod, który odpowiada za element typu tekst dla autora programu
etykieta_podpis.grid(row=6, column=0, columnspan=4) # columnspan odstep kolumny // kod odpowiedzialny za rysowanie grafiki dla podpisu , dla 6 wiersza i 0 kolumny
zrodlo.mainloop() // kod, który odpowiada za tworzenie pełnej pętli dla programu kalkulatora
Wygląd kalkulatora pod daniu na Run - Run Module (F5)
Poniżej pliki do pobrania:
Nigdy nie jest za późno na nauke!
Każda kariera zaczyna sie od dobrej edukacji
Każda pasja przynosi szczęście !!!
Podpowiedź:
Możesz usunąć tę informację włączając Plan Premium