Програма обрахунку депозиту. Використання модуля tkMessageBox.
# -*- coding: utf-8 -*- from Tkinter import * import tkMessageBox root = Tk () root.title ('depozit') root.geometry ('460x280') root.resizable(width=False, height=False) lbl_1 = Label(root, text='Сума депозиту', font='Arial 14') lbl_1.grid(row=0,column=0) ent1 = Entry(root, width=15,bg="white",justify=LEFT, font='Arial 14') ent1.grid(row=0,column=1) lbl_1 = Label(root, text='грн.', font='Arial 14') lbl_1.grid(row=0,column=2) lbl_2 = Label(root, text='Річний відсоток', font='Arial 14') lbl_2.grid(row=1,column=0) ent2 = Entry(root, width=15,bg="white",justify=LEFT, font='Arial 14') ent2.grid(row=1,column=1) lbl_2 = Label(root, text='%', font='Arial 14') lbl_2.grid(row=1,column=2) lbl_3 = Label(root, text='Термін депозиту', font='Arial 14') lbl_3.grid(row=2,column=0) ent3 = Entry(root, width=15,bg="white",justify=LEFT, font='Arial 14') ent3.grid(row=2,column=1) lbl_3 = Label(root, text='міс', font='Arial 14') lbl_3.grid(row=2,column=2) def obrahynok (): sp = float (ent1.get()) v = float (ent2.get()) t = int (ent3.get()) if t<=0: tkMessageBox.showinfo('Помилка', 'Введіть кількість місяців більших за 0') k=1 suma=sp v=v/1200 while k<=t: suma=suma+suma*v k=k+1 sv=suma-sp lbl4.configure(text=round(sv,2)) lbl5.configure(text=round (suma,2)) btn_1 = Button(root, text='Обрахувати', font='Arial 14', command=obrahynok) btn_1.grid(row=3,column=1) lbl_4 = Label(root, text='Нарахування по відсотках', font='Arial 12') lbl_4.grid(row=4,column=0) lbl4 = Label(root, text='?', font='Arial 14') lbl4.grid(row=4,column=1) lbl_4 = Label(root, text='грн.', font='Arial 14') lbl_4.grid(row=4,column=2) lbl_5 = Label(root, text='Сума депозиту', font='Arial 12') lbl_5.grid(row=5,column=0) lbl5 = Label(root, text='?', font='Arial 14') lbl5.grid(row=5,column=1) lbl_5 = Label(root, text='грн.', font='Arial 14') lbl_5.grid(row=5,column=2) btn_2 = Button(root, text="Вихід", bg="white", fg="red", font="Arial 14", command=root.destroy) btn_2.grid(row=6,column=2) root.mainloop ()
Програма, що імітує “Магічний шар”. Використання модулів tkMessageBox, random, time. Робота зі списками.
from Tkinter import * import tkMessageBox root = Tk () root.title ('magik ball') root.geometry ("640x640") root.resizable(width=False, height=False) cnv = Canvas(root, width=640, height=640, bg='lemonchiffon')# створюємо полотно cnv.grid(row=4,column=4) cnv.create_oval(160, 160, 480, 480, fill='black')# створюємо чорне коло cnv.create_oval(180, 180, 460, 460, fill='blue')# створюємо синє коло cnv.create_oval(460, 260,460, 260, fill='white')# створюємо біле коло from random import * from time import * def magik(): a='sign points to yes' b='my sourses say no' c='reply hazy, try again' d='my reply is no' e='it is certain' f='without a doubt' g='it is decidedly so' h='yes' i='no' j='outlook good' k='concentrate and ask again' l='most likely' m='you may rely on it' n='do not count on it' o='cannot predict now' p='outlool not so good' q='very doubtful' r='as i see it, yes' sleep(0.5) otvet=choice([a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r]) o_lbl.configure(text=otvet) but = Button(root, text='RESTART', width=15, height=1, bg="red", fg="white", font="Arial",command=magik) but.grid(row=1,column=4) o_lbl = Label(root, foreground ='red', font= (14),text='?') o_lbl.grid(row=4,column=4) tkMessageBox.showinfo('Question', 'Ask me questions and click restart') root.mainloop ()
Калькулятор електроенергії (дійсний із 01.10.2021 р). Використання фреймів, модуля tkMessageBox, методу focus().
# -*- coding: utf-8 -*- from Tkinter import * root = Tk() root.title ('energy calc') root.geometry ('460x320') root.resizable(width=False, height=False) f_1 = LabelFrame(text='1 зона') f_2 = LabelFrame(text='2 зони') f_1.pack() f_2.pack() pot_1 = Label(f_1, text='Поточні покази') pot_1.grid(row=0, column=0) pot_1 = Entry(f_1, width=10) pot_1.grid(row=0, column=1) pot_1.focus() pot_1_od = Label(f_1, text='кВт*год') pot_1_od .grid(row=0, column=2) pop_1 = Label(f_1, text='Попередні покази') pop_1.grid(row=1, column=0) pop_1 = Entry(f_1, width=10) pop_1.grid(row=1, column=1) pop_1_od= Label(f_1, text='кВт*год') pop_1_od.grid(row=1, column=2) rizn_1 = Label(f_1, text='Різниця') rizn_1.grid(row=2, column=0) rizn_1 = Label(f_1, text='?') rizn_1.grid(row=2, column=1) rizn_1_od = Label(f_1, text='кВт*год') rizn_1_od.grid(row=2, column=2) vart_1 = Label(f_1, text='Вартість') vart_1.grid(row=3, column=0) vart_1 = Label(f_1, text='?') vart_1.grid(row=3, column=1) vart_1_od = Label(f_1, text='грн') vart_1_od.grid(row=3, column=2) def calc_1 (): pt_1=int(pot_1.get()) pp_1=int(pop_1.get()) if pt_1 and pp_1 <=0: tkMessageBox.showinfo('Помилка', 'Введіть правильні дані лічильника') razn=pt_1-pp_1 if razn<=250: vart=razn*1.44 else: vart=razn*1.68 rizn_1.configure(text=razn) vart_1.configure(text=round(vart,2)) but_1 = Button(f_1, text='Розрахувати', command=calc_1) but_1.grid(row=4, column=1) lbl_1 = Label(f_2, text='День') lbl_1.grid(row=0, column=1) lbl_2 = Label(f_2, text='Ніч') lbl_2.grid(row=0, column=3) lbl_3 = Label(f_2, text='Поточні покази') lbl_3.grid(row=1, column=0) ent_1 = Entry(f_2, width=10) ent_1.grid(row=1, column=1) ent_2 = Entry(f_2, width=10) ent_2.grid(row=1, column=3) lbl_4 = Label(f_2, text='кВт*год') lbl_4.grid(row=1, column=4) lbl_5 = Label(f_2, text='Попередні покази') lbl_5.grid(row=2, column=0) ent_3 = Entry(f_2, width=10) ent_3.grid(row=2, column=1) ent_4 = Entry(f_2, width=10) ent_4.grid(row=2, column=3) lbl_6 = Label(f_2, text='кВт*год') lbl_6.grid(row=2, column=4) lbl_7 = Label(f_2, text='Різниця') lbl_7.grid(row=3, column=0) lbl_8 = Label(f_2, text='?') lbl_8.grid(row=3, column=1) lbl_9 = Label(f_2, text='?') lbl_9.grid(row=3, column=3) lbl_10 = Label(f_2, text='кВт*год') lbl_10.grid(row=3, column=4) lbl_11 = Label(f_2, text='Вартість') lbl_11.grid(row=4, column=0) lbl_12 = Label(f_2, text='?') lbl_12.grid(row=4, column=2) lbl_13 = Label(f_2, text='грн') lbl_13.grid(row=4, column=3) def calc_2 (): pot_d=int(ent_1.get()) pot_n=int(ent_2.get()) pop_d=int(ent_3.get()) pop_n=int(ent_4.get()) if pot_d and pop_d and pot_n and pop_n <=0: tkMessageBox.showinfo('Помилка', 'Введіть правильні дані лічильника') razn_d=pot_d-pop_d razn_n=pot_n-pop_n summ_razn=razn_d+razn_n if summ_razn<=250: vart=razn_d*1.44+razn_n*0.72 else: vart=razn_d*1.68+razn_n*0.84 lbl_8.configure(text=razn_d) lbl_9.configure(text=razn_n) lbl_12.configure(text=round(vart,2)) but_2 = Button(f_2, text='Розрахувати', command=calc_2) but_2.grid(row=5, column=2) root.mainloop()