Kurs języka Python
Wykład 5.
Marcin Młotkowski
9 listopada 2009
1
Rodzaje parametrów funkcji
2
Biblioteka Tk
3
Układanie kontrolek w oknie
4
Grafika żółwiowa
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Parametry domyślne
Wartość domyślna parametrów
def log(val, base=2.718281): ...
def foo(arg1=[], arg2="dwa", arg3=3):
print log(34, 10), log(12)
print foo([1,2,3], "abcd", 12)
print foo([1,2,3], "abcd")
print foo([1,2,3])
print foo()
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Parametry domyślne
Wartość domyślna parametrów
def log(val, base=2.718281): ...
def foo(arg1=[], arg2="dwa", arg3=3):
print log(34, 10), log(12)
print foo([1,2,3], "abcd", 12)
print foo([1,2,3], "abcd")
print foo([1,2,3])
print foo()
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Uwagi
Uwaga
Wartości domyślne parametrów są obliczane tylko raz
def f(a, L=[]):
L.append(a)
return L
Rezultat
>>> print f(1)
[1]
>>> print f(2)
[1, 2]
>>> print f(3)
[1, 2, 3]
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Uwagi
Uwaga
Wartości domyślne parametrów są obliczane tylko raz
def f(a, L=[]):
L.append(a)
return L
Rezultat
>>> print f(1)
[1]
>>> print f(2)
[1, 2]
>>> print f(3)
[1, 2, 3]
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Argumenty nazwane
def html_e(body="", color="NavyBlue", font="Arial",
f_size="12"):
return ....
html_elem(color="White", body="A kuku")
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Argumenty nazwane
def html_e(body="", color="NavyBlue", font="Arial",
f_size="12"):
return ....
html_elem(color="White", body="A kuku")
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Funkcje ze zmienną liczbą argumentów
def my_print(prompt=">>>", *args):
for a in args:
print prompt, e
my_print("one")
my_print("jeden", 2)
my_print("jeden", 2, [1,2,3])
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Funkcje ze zmienną liczbą argumentów
def my_print(prompt=">>>", *args):
for a in args:
print prompt, e
my_print("one")
my_print("jeden", 2)
my_print("jeden", 2, [1,2,3])
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Parametry kluczowe
def html_attrs(**attrs):
for (attr, val) in attrs.iteritems():
print attr, = , val
html_attrs(id= 123 , name= ozdobnik , color= red )
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Parametry kluczowe
def html_attrs(**attrs):
for (attr, val) in attrs.iteritems():
print attr, = , val
html_attrs(id= 123 , name= ozdobnik , color= red )
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Mieszanie argumentów
def html_ul(comment="", *ul_list, **attribs):
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Biblioteki graficzne w Pythonie
curses: interfejs tekstowy
Tkinter (Tk interface): biblioteka okienkowa Tk + Tix (Tk
extension)
Pygtk, pygnome: API do środowiska Gtk/Gnome
PyQT: API do QT
wxWindows
OpenGL
PyWin32
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Tkinter
Elementy składowe
Okna
Kontrolki (widgety)
Zdarzenia i funkcje zwrotne (callbacks)
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Przykład
Aplikacja, która
rysuje figury zadane przez użytkownika
czyści ekran na żądanie
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Wynik
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Kontrolki
BibliotekaTkinter(tkinterw 3.0):
class Frame(Widget): okno
class Entry(Widget): wpisywanie tekstu
class Label(Widget): tekst
class Menu(Widget): menu
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Kontrolki w akcji
Label
Entry
Menu
Button
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Rysowanie, klasa Canvas
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Schemat implementacji
from Tkinter import *
from turtle import *
class Application(Frame):
...
app = Application()
app.master.title("Rysownik")
app.mainloop()
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Konstruktor klasy
class Application
def__init__(self, master=None):
Frame.__init__(self, master)
self.grid()
self.createWidgets()
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Utworzenie kontrolek, cz. 1
def createWidgets(self):
self.mk_menu()
self.label = Label(self, text = "Jaką figurę narysować?")
self.label.grid()
self.entry = Entry(self)
self.entry.grid()
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Utworzenie kontrolek, cz. 2
cd. metody def createWidgets(self)
self.cs = Canvas(self)
self.cs.grid()
self.quitButton = Button(self, text="Koniec",
command=self.quit)
self.quitButton.grid()
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Utworzenie menu
def mk_menu(self):
self.mb = Menubutton(self, text= Plik )
self.mb.grid(sticky=NW)
self.menu = Menu(self.mb)
self.mb["menu"] = self.menu
self.menu.add_command(label= Rysuj ,
command = self.cb_rysuj)
self.menu.add_command(label= Wyczyść ,
command = lambda : self.cs.delete( all ))
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Funkcje zwrotne
Każde kliknięcie na kontrolkę powoduje wywołanie zdarzenia
Zdarzenie może być obsłużony przez funkcję zwrotną (callback)
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Implementacja funkcji zwrotnej
Metoda klasy Application
def cb_rysuj(self):
self.pen = RawPen(self.cs)
if self.entry.get().strip() == kwadrat :
for i in range(4):
self.pen.forward(60)
self.pen.right(90)
else:
for dist in range(40):
self.pen.forward(4*dist)
self.pen.right(90)
Podłączanie obsługi zdarzeń
self.menu.add_command(label= Rysuj , command = self.cb_rysuj)
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Implementacja funkcji zwrotnej
Metoda klasy Application
def cb_rysuj(self):
self.pen = RawPen(self.cs)
if self.entry.get().strip() == kwadrat :
for i in range(4):
self.pen.forward(60)
self.pen.right(90)
else:
for dist in range(40):
self.pen.forward(4*dist)
self.pen.right(90)
Podłączanie obsługi zdarzeń
self.menu.add_command(label= Rysuj , command = self.cb_rysuj)
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Zarządzanie układem kontrolek w oknie: model grid
class Application
def__init__(self, master=None):
Frame.__init__(self, master)
self.grid()
...
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Model grid
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Metoda grid
.grid(): umieszczenie kontrolki w kolejnym wierszu okna
.grid(column=1, row=2)
.grid(columnspan=2, rowspan=3)
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Przykład: klawiatura numeryczna
yródło: Wikipedia
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Implementacja
col = 0
for sgn in [ NumL , / , * , - ]:
wgt = Button(self, text=sgn)
wgt.grid(row=1, column=col)
col += 1
for num in range(9):
wgt = Button(self, text=str(num + 1))
wgt.grid(row= 4 - num/3, column = num % 3)
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Implementacja, cd
wgt = Button(self, text= - )
wgt.grid(row=1, column=3)
wgt = Button(self, text= + )
wgt.grid(row=2, column=3, rowspan=2)
wgt = Button(self, text= Enter )
wgt.grid(row=4, column=3, rowspan=2)
wgt = Button(self, text= 0 )
wgt.grid(row=5, column=0, columnspan=2)
wgt = Button(self, text= Del )
wgt.grid(row=5, column=2)
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Wynik ;-)
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Wynik ;-)
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Położenie kontrolki w komórce
NE
NW N
E
W CENTER
SW S SE
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Umieszczenie kontrolki w komórce
self.mb = Menubutton(self, text= Plik )
self.mb.grid(sticky=NW)
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Upiększanie kontrolek
Zmiana kolorów
bt = Button(self, text= koniec , background= red ,
foreground= #00ffff )
Zmiana czcionek
import tkFont
font = tkFont.Font(family= Helvetica , size=18)
self.label = Label(self, text = "to jest tekst", font=font)
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Upiększanie kontrolek
Zmiana kolorów
bt = Button(self, text= koniec , background= red ,
foreground= #00ffff )
Zmiana czcionek
import tkFont
font = tkFont.Font(family= Helvetica , size=18)
self.label = Label(self, text = "to jest tekst", font=font)
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Inicjowanie grafiki żółwiowej
class Keypad
def cb_rysuj(self):
self.pen = RawPen(self.cs)
if self.entry.get().strip() == kwadrat :
for i in range(4):
self.pen.forward(60)
self.pen.right(90)
else:
for dist in range(40):
self.pen.forward(4*dist)
self.pen.right(90)
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Poruszanie pisakiem
forward(odległość)
backward(odległość)
goto(x, y)
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Konfiguracja sposobu pisania
up()
down()
width(szerokość)
color(r, g, b)
color(s)
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Zmiana kierunku pisania
left(kąt)
right(kąt)
setheading(kąt)
Marcin Młotkowski Kurs języka Python
Rodzaje parametrów funkcji
Biblioteka Tk
Układanie kontrolek w oknie
Grafika żółwiowa
Demo
>>> import turtle
>>> turtle.demo()
Marcin Młotkowski Kurs języka Python
Wyszukiwarka
Podobne podstrony:
Wykład 05 Opadanie i fluidyzacjaWyklad 05Techniki negocjacji i mediacji w administracji wykłady 05 11 2013Analiza Finansowa Wykład 05 02 12 09wyklad 05 03 2011Wykład 05 Pręt i Układ PrętówWykład 05 Narzędzia i maszyny do umieszczania sadzonek w glebiewyklad 05Konstrukcje metalowe Sem[1][1] VI Wyklad 05logika wyklad 05Wyklad 05 dyrektywa o informacji srodek bWyklad 05 14 15 GWwyklad 7 05więcej podobnych podstron