Застереження !!!
Всі прикладі створені за допомогою Wing IDE 101 5.1. При використанні стандартного IDLE (Python GUI) на початку програми потрібно прописати рядок: # -*- coding: utf-8 -*-
Простий калькулятор. Використання модуля math.
from Tkinter import * from math import * root = Tk() root.title('Простий калькулятор') root.geometry('300x150') def calc(): res.configure(text = 'Результат=' + str(eval(ent.get()))) lbl=Label(root, text='Ваш вираз:') lbl.pack() ent = Entry(root) ent.bind('', calc) ent.pack() res = Label(root) res.pack() btn1 = Button(root, text='Обрахувати', width=15, height=1, command=calc) btn1.pack() lbl2=Label(root, text='----', fg='red') lbl2.pack() btn2 = Button(root, text='EXIT', fg='red', width=15, height=1, command=root.destroy) btn2.pack() root.mainloop()
Програма, що за двома відомими сторонами та кутом між ними знаходить довжину третьої сторони і його площу. Використання модуля math, робота із полями вводу даних.
# -*- coding: utf-8 -*- from Tkinter import * from math import * root=Tk() root.title('Трикутник') root.geometry('250x250') root.resizable(width=False, height=False) # заборона змінювати розміри вікна lbl1 = Label(root, text='Сторона a') lbl1.pack() a_ent = Entry(width=25,bg="white",justify=CENTER) a_ent.pack() lbl2= Label(root, text='Сторона b') lbl2.pack() b_ent = Entry(width=25,bg="white",justify=CENTER) b_ent.pack() lbl3 = Label(root, text='Кут між сторонами') lbl3.pack() alfa_ent = Entry(width=25,bg="white",justify=CENTER) alfa_ent.pack() def tryk (): a = float (a_ent.get()) b = float (b_ent.get()) alfa = float (alfa_ent.get()) c=sqrt(a*a+b*b-2*a*b*cos((alfa*pi)/180)) s=(a*b*sin((alfa*pi)/180))/2 c_lbl.configure(text=c) s_lbl.configure(text=s) but = Button(root, text="Результат", command=tryk) but.pack() lbl4 = Label(root, text='Сторона c') lbl4.pack() c_lbl = Label(root, text='c= ?') c_lbl.pack() lbl5 = Label(root, text='Площа') lbl5.pack() s_lbl = Label(root, text='S= ?') s_lbl.pack() root.mainloop ()
Програма перетворення градусів Цельсія та Фаренгейта в Кельвіни. Використання модуля tkMessageBox (діалогове вікно), робота з Radiobutton.
# -*- coding: utf-8 -*- from Tkinter import * import tkMessageBox root=Tk() root.title('Температура') root.geometry('250x250') root.resizable(width=False, height=False) lbl1 = Label(root, text='Температура') lbl1.pack() t_ent = Entry(width=25,bg='white',justify=CENTER) t_ent.pack() v=IntVar() rad1 = Radiobutton(root,text='Цельсій',variable=v,value=1) rad2 = Radiobutton(root,text='Фаренгейт',variable=v,value=2) rad1.pack() rad2.pack() def temp (): t = float (t_ent.get()) var = v.get() if var==1: T = t+273.15 if var==2: T = ((t-32)*5)/9 + 273.15 if T<0: tkMessageBox.showinfo('Помилка', '0 К найменша температура у Всесвіті') T='error' T_lbl.configure(text=T) but = Button(root, text='Результат', command=temp) but.pack() lbl4 = Label(root, text='Температура в Кельвінах') lbl4.pack() T_lbl = Label(root, text='Т= ?') T_lbl.pack() root.mainloop ()
Знаходження суми елементів, максимального та мінімального елементів одномірного масиву (списка). Використання модуля random.
# -*- coding: utf-8 -*- from Tkinter import * from random import * import tkMessageBox root=Tk() root.title('Списки') root.geometry('200x200') root.resizable(width=False, height=False) lbl1 = Label(root, text='Одномірний масив') lbl1.pack() n_ent = Entry(width=25,bg='white',justify=CENTER) n_ent.pack() def mass (): n = int (n_ent.get()) a = [randint(0,100) for i in range(n)] b = ' '.join(map(str, a)) s=sum(a) maxx=max(a) minn=min(a) s_lbl.configure(text=s) maxx_lbl.configure(text=maxx) minn_lbl.configure(text=minn) tkMessageBox.showinfo('Вихідний масив', a) but = Button(root, text='Результат', command=mass) but.pack() lbl5 = Label(root, text='Сума елементів масива') lbl5.pack() s_lbl = Label(root, text='?') s_lbl.pack() lbl6 = Label(root, text='Максимальний елемент') lbl6.pack() maxx_lbl = Label(root, text='?') maxx_lbl.pack() lbl7 = Label(root, text='Мінімальний елемент') lbl7.pack() minn_lbl = Label(root, text='?') minn_lbl.pack() root.mainloop ()
Генератор паролів. Використання модулів random, string.
# -*- coding: utf-8 -*- from Tkinter import * import random import string root=Tk() root.title('Паролі') root.geometry('250x120') root.resizable(width=False, height=False) lbl1 = Label(root, text='Довжина пароля (від 8-ми символів)') lbl1.pack() n_ent = Entry(width=25,bg='white',justify=CENTER) n_ent.pack() def pasw (): n = int (n_ent.get()) if n<8: pas='pomulka' else: pas = ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for x in range(n)) s_lbl.configure(text=pas) but = Button(root, text='Результат', command=pasw) but.pack() lbl5 = Label(root, text='Пароль') lbl5.pack() s_lbl = Label(root, foreground ='red', font= (14),text='?') s_lbl.pack() root.mainloop ()
Малювання будинка. Використання методу Canvas()
from Tkinter import * root = Tk () root.title ("Будинок") cnv = Canvas(root, width=600, height=500, bg='lemonchiffon')# створюємо полотно cnv.pack () cnv.create_rectangle(150, 150, 450, 450, fill='brown', outline='black', width=2)# створюємо стіни cnv.create_polygon(150, 150, 300, 20, 450, 150, fill='burlywood', outline='black', width=2)# створюємо кришу cnv.create_rectangle(300, 250, 400, 450, fill='chocolate', outline='black', width=2)# створюємо двері cnv.create_rectangle(180, 200, 280, 300, fill='blue', outline='black', width=2)# створюємо вікно cnv.create_line(180, 250, 280, 250, width=2)# створюємо лінії на вікні cnv.create_line(230, 200, 230, 300, width=2) cnv.create_oval(280, 80, 320, 120, fill='blue', outline='black', width=2)# створюємо кругле вікно root.mainloop ()
Малювання Черепашкою. Використання модуля turtle.
from turtle import * from Tkinter import * root = Tk () root.title ("Малювання черепашкою") root.geometry ("320x300") def kvadrat (): shape ('turtle') color ('red') width(3) for i in range (4): forward (100) right (90) def kolo (): shape ('turtle') color ('blue') width(3) circle (100) def kytnuk (): shape ('turtle') color('orange') width(3) for z in range(8): fd(300/8) rt(360/8) lbl = Label(root, text="Tkinter i turtle", font="Arial 18") lbl.pack() btn1 = Button(root, text="Квадрат", width=15, height=1, bg="red", fg="white", font="Arial", command=kvadrat) btn1.pack() lbl = Label(root, text="----", font="Arial 18") lbl.pack() btn2 = Button(root, text="Коло", width=15, height=1, bg="red", fg="white", font="Arial", command=kolo) btn2.pack() lbl = Label(root, text="----", font="Arial 18") lbl.pack() btn3 = Button(root, text="Багатокутник", width=15, height=1, bg="red", fg="white", font="Arial", command=kytnuk) btn3.pack() lbl = Label(root, text="----", font="Arial 18") lbl.pack() btn4 = Button(root, text="Вихід", width=15, height=1, bg="white", fg="red", font="Arial", command=root.destroy ) btn4.pack() root.mainloop ()