Aplikacje okienkowe. Kurs systemu Unix 1

Podobne dokumenty
Aplikacje okienkowe (2) urs systemu Unix 1

Lekcja 3 Banki i nowe przedmioty

Lekcja 6 Programowanie - Zaawansowane

1. Wprowadzenie do C/C++

Kurs języka Python. Wykład 5. Marcin Młotkowski. 9 listopada Rodzaje parametrów funkcji. 2 Biblioteka Tk. 3 Układanie kontrolek w oknie

1. Wprowadzenie do C/C++

Lekcja 3 - BANKI I NOWE PRZEDMIOTY

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

rozdział 4: WŁASNOŚCI WIDŻETÓW

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów

Podstawy modelowania w j zyku UML

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

Lekcja 5 Programowanie - Nowicjusz

19. Obiektowo± 1 Kacze typowanie. 2 Klasy

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37

Lekcja 12 - POMOCNICY

Wstawianie gotowych rysunków w texu - informacje podstawowe.

2 Skªadnia polece«w pliku

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Model obiektu w JavaScript

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

Edyta Juszczyk. Akademia im. Jana Dªugosza w Cz stochowie. Lekcja 1Wst p

Dyskretyzacja i kwantyzacja obrazów

Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015

1. Odcienie szaro±ci. Materiaªy na wiczenia z Wprowadzenia do graki maszynowej dla kierunku Informatyka, rok III, sem. 5, rok akadem.

Lekcja 9 Liczby losowe, zmienne, staªe

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

Programowanie i struktury danych

x y x y x y x + y x y

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

P tle. Rozdziaª Wst p. 4.2 P tle P tla for(...);

Biblioteka graczna XPCE

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

Kompilowanie programów

Wzorce projektowe kreacyjne

Systemy mikroprocesorowe - projekt

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Podstawy modelowania w j zyku UML

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Zaawansowany kurs języka Python

Wzorce projektowe strukturalne cz. 1

Przetwarzanie sygnaªów

Tytuł pracy. Praca dyplomowa inżynierska. Filip Piechocki. Tytuł Imię i Nazwisko

Dziaª utrzymania ruchu aplikacja wspomagaj ca zarz dzanie

ep Podstawy j Wst ezyka Tcl zaawansowany GUI-Tk Zastosowania Tcl/Tk Ireneusz So lczyk 26 kwietnia 2006

Wektory w przestrzeni

INFORMATOR TECHNICZNY WONDERWARE

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

dbsamples.udl lub przygotowany wcześniej plik dla Excela) i OK,

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Przewodnik u»ytkownika

Wska¹niki, tablice dynamiczne wielowymiarowe

rozdział 2: WSTĘP DO TKINTER

Listy i operacje pytania

XVII Warmi«sko-Mazurskie Zawody Matematyczne

Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej:

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Ekonometria Bayesowska

Lab. 02: Algorytm Schrage

Programowanie obiektowe w C++ Wykªad 4

Moduł. Rama 2D suplement do wersji Konstruktora 4.6

tylko poprawne odpowiedzi, ale nie wszystkie 2 pkt poprawne i niepoprawne odpowiedzi lub brak zaznaczenia 0 pkt

Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów

Rekurencyjne struktury danych

1 Zarys architektury MIPS

Metodydowodzenia twierdzeń

Bazy danych, 4. wiczenia

Programowanie wspóªbie»ne

Algorytmy zwiazane z gramatykami bezkontekstowymi

Android. Hierarchie widoków i ich wy±wietlanie. Piotr Fulma«ski. March 14, 2016

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Technologie Informacyjne

Podstawy matematyki dla informatyków

Przetwarzanie sygnaªów

Interpreter opisu dziaªa«quadrokoptera wtyczki. 1 Ogólny opis zadania. 2 Skªadnia nowych polece« 2.1 Polecenie Grasper

c Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

Liczby zmiennoprzecinkowe

Programowanie robota mobilnego Khepera

Elementy geometrii w przestrzeni R 3

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Podstawy JavaScript. Dawid Poªap. Dawid Poªap Technologia informacyjna Grudzie«, / 13

Dokumentacja i systemy jako±ci

Metody dowodzenia twierdze«

Podstawy Informatyki i Technologii Informacyjnej

Spis tre±ci. Plan. 1 Pochodna cz stkowa. 1.1 Denicja Przykªady Wªasno±ci Pochodne wy»szych rz dów... 3

Spis tre±ci. 1 Gradient. 1.1 Pochodna pola skalarnego. Plan

Wojewódzki Konkurs Matematyczny

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

W zadaniach na procenty wyró»niamy trzy typy czynno±ci: obliczanie, jakim procentem jednej liczby jest druga liczba,

Podstawy statystycznego modelowania danych Analiza prze»ycia

Konfiguracja historii plików

Transkrypt:

Aplikacje okienkowe Kurs systemu Unix 1

Najpopularniejsze biblioteki systemu X Tk rozszerzenie j zyka Tcl GTK biblioteka u»ywana w GNOME (pierwotnie w Gimp) Qt biblioteka u»ywana w KDE wxwindows opakowuje oryginalne kontrolki Wszystkie s w znacznym stopniu przeno±ne (Windows, MacOS) Dawniej byªa jeszcze komercyjna biblioteka Moti Umo»liwiaj pisanie programów w C, C++, Pythonie, Perlu oraz w Tcl Kurs systemu Unix 2

Pakiet narz dziowy Tk Interfejs do niego standardowo doª czany do dystybucji Pythona jako moduª Tkinter Najcz ±ciej ªadowany za pomoc from Tkinter import *. Wygl d odrobink maªo trendy. Mo»liwe rozszerzenie: tix, moduª zawieraj cy dodatkowe kontrolki. Kurs systemu Unix 3

Inne mo»liwo±ci w Pythonie PyGTK wersja GTK dla Pythona PyQt wersja Qt dla Pythona wxpython wersja wxwindows dla Pythona wxpython is the best and most mature cross-platform GUI toolkit, given a number of constraints. The only reason wxpython isn't the standard Python GUI toolkit is that Tkinter was there rst. Guido van Rossum Kurs systemu Unix 4

Tcl/Tk a Tkinter Pisz c programy w Tkinter, cz sto si gamy do dokumentacji Tcl/Tk Cho Tcl jest zupeªnie innym j zykiem ni» Python, wiele rzeczy w Tkinter da si ªatwo wydedukowa, przygl daj c si konstrukcjom Tcl/Tk Kurs systemu Unix 5

Podstawy Tcl/Tk Interpreterem Tcl/Tk jest program wish. Gdy chcemy by wish przeczytaª co± z pliku to u»ywamy opcji -f. Po uruchomieniu wish otwiera si okienko aplikacji, mo»emy korzysta z konsoli i z niej wprowadza polecenia zmieniajace sytuacj w okienku aplikacji. Kurs systemu Unix 6

Witaj ±wiecie! #!/usr/local/bin/wish -f pack [button.b -text "Witaj\n±wiecie!" \ -justify center \ -width 20 \ -command {puts "Cze±!"} ] Kurs systemu Unix 7

Komentarz do przykªadu Polecenie button tworzy przycisk o nazwie.b i o pewnych wªa±ciwo±ciach (-text,...) Polecenie pack umieszcza kontrolk w oknie aplikacji. Nazwy kontrolek oddaj ich hierarchi :.a.b.c oznacza,»e kontrolka a jest na najwy»szym poziomie, jest ona ojcem b, który z kolei jest ojcem c. Mo»na zmienia warto±ci pól istniej cych kontrolek za pomoc polecenia configure, pisz c przykªadowo:.b config -text "Dzie«dobry!" Kurs systemu Unix 8

Witaj ±wiecie (w Pythonie) from Tkinter import * root = Tk() # gdyby byª nam potrzebny # obiekt gªównego okna def callback(): print "Cze± tu Python" b = Button(text="Witaj ±wiecie", width=20, justify b.pack() = "center", command=callback) mainloop() # tu si zaczyna dziaªanie # zdeterminowane interfejsem Kurs systemu Unix 9

Ogólne zasady translacji Tcl/Tk -> Python Nazwy z tcl/tk typu.appl.ramka.przyciskwramce zas? pione s normalnymi nazwami obiektów Pythona. Poleceniu button tworz cemu przycisk odpowiada klasa Button, oczywi±cie Button(...) jako konstruktor jest te» poleceniem tworz cym przycisk. Czyli: button.fred =====> fred = Button() button.panel.fred =====> fred = Button(panel).fred configure -fg red =====> fred["fg"] = red ALBO=> fred.config(fg = "red") Wywoªanie polecenia dla kontrolki tªumaczy si na wywoªanie metody dla obiektu kontrolki. Kurs systemu Unix 10

Tk i Python (2) Pewne opcje Tk przyjmuj warto±ci ze sko«czonego zbioru. Realizowane jest to za pomoc napisów. Opcje boolowskie wymagaj staªych 0 oraz 1, wzgl dnie napisów 'yes' albo 'no'. Opis polece«tk jest (najprawdopodobniej) dost pny za po±rednictwem systemowego podr cznika, przykªadowo man pack albo man grid. Kurs systemu Unix 11

Zmienne Tk Kontrolki cz sto maj zwi zan ze sob zmienn do przekazywania warto±ci wczytywanych przez kontrolk. Zmienne mog by dzielone przez kilka kontrolek. Naturalne takie sytuacje to: przyciski Radiobuttons albo para suwak+maªe okienko edycyjne. Kontrolka musi mie prawo zmieniania warto±ci zmiennej, a zatem nawet je±li zmienna jest Int to powinna by obiektem zmiennym Tkinter deniuje klasy (dziedzicz ce z Variable): StringVar, IntVar, DoubleVar oraz BooleanVar Zmiana i odczytywanie warto±ci tych obiektów powinna by wykonywana metodami set oraz get. Mo»na zdeniowa wªasn klas dziedzicz c z Variable. Kurs systemu Unix 12

Co mog kontrolki? Poniewa» kontrolkom odpowiadaj klasy Pythona, mo»na wywoªa dir(nazwaklasykontrolki), aby dowiedzie si, co ma ona do zaoferowania. Program >>> L = dir(listbox) len(l) da w wyniku pora»aj c liczb 206. Pami tamy równie» o atrybucie doc, przykªadowo Listbox. doc oznacza napis: 'Listbox widget which can display a list of strings.' O konkretnym atrybucie mo»emy si dowiedzie pisz c: print Listbox.pack. doc Kurs systemu Unix 13

O klasach kontrolek ogólnie Kontrolki dziedzicz z klasy Widget (180 elementów). Kontrolki maj metody oraz opcje (razem 206, dla Listbox). Opcje okre±laj zachowanie i wygl d kontrolki. Opcje ustala si podczas wykonanie kostruktora oraz za pomoc metody configure (alternatywn form jest przeci»ony operator indeksowania) Pierwszym parametrem kontruktora jest okno macierzyste (domy±lnie gªówne okno aplikacji), nast pne parametrzy podajemy zwykle za pomoc sªów kluczowych. Równie» za pomoc sªów kluczowych podajemy parametry configure. Kurs systemu Unix 14

Ramki Klasa Frame opisuje ramk (pojemnik na inne rzeczy). Opcja relief deniuje styl obramowania, opcja bg z argumentem n mówi,»e obramowanie ma mie n pikseli dªugo±ci. W nast pnym przykªadzie u»ywane s nast puj ce opcje polecenia pack: 1) side z argumentem left (z której strony) 2) padx, pady z argumentem liczbowym, mówi ce o wielko±ci odst pu (domy±lnie przyklejamy, czyli odst p 0) Kurs systemu Unix 15

Przykªad z ramkami #!/usr/bin/python from Tkinter import * root = Tk() root["bg"] = "steelblue" F = [] for r in [ 'sunken', 'raised', 'flat', 'ridge', 'groove']: F.append( Frame( width="0.5i", height="0.5i", relief=r, bd= 2)) for fr in F: fr.pack(side="top", padx=10, pady=10) mainloop() Kurs systemu Unix 16

Etykieta Etykieta to nieaktywny tekst o pewnych parametrach. Odpowiada jej klasa Label Przykªadowe opcje: 1. Podstawowa text mówi o tre±ci etykiety. 2. Opcja justify, z argumentem 'left', 'right', 'center' mówi o formatowaniu tekstu 3. wraplength mówi o szeroko±ci tekstu (domy±lnie w pikselach, ale mo»liwe inne jednostki) Kurs systemu Unix 17

Przyciski Mamy trzy rodzaje przycisków: zwykªe, pola wyboru oraz pola opcji. Odpowiadaj im klasy: Button, Radiobutton oraz Checkbutton. Niektóre opcje: 1. Opcja variable mówi o zmiennej przechowywuj cej wynik przycisku. 2. Opcje onvalue oraz -offvalue dla checkbox-ów mówi o warto±ci tej zmiennej, w odpowiednim przypadku 3. Opcja value dla pól opcji ma analogiczn funkcj. Kurs systemu Unix 18

Troch wi kszy program (przykªad) Wybór jednej z trzech opcji aktywny jedynie wówczas, gdy wª czony przycisk typu checkbutton i do tego dwa przyciski 1. mówi cy o stanie wczytywania 2. ko«cz cy dziaªanie programu Kurs systemu Unix 19

Troch wi kszy program Na pocz tku tworzymy zmienne from Tkinter import * glodny = BooleanVar(); glodny.set(1) danie = StringVar(); danie.set('mielonka') oraz przyciski do wyboru opcji RB = []; dania = ['mielonka','jajecznica','d»em'] for i in range(len(dania)): RB.append( Radiobutton(text = dania[i], value = dania[i], justify="left", variable = danie)) Kurs systemu Unix 20

Troch wi kszy program (2) Funkcja dla przycisku opcji def zglodnialem(): if glodny.get(): for i in range(3): RB[i].configure(state = "normal") else for i in range(3): RB[i].configure(state = "disabled") oraz sam przycisk opcji cb = Checkbutton( text = "Jeste± gªodny", command=zglodnialem, relief = "flat" variable = glodny, onvalue=1, offvalue= 0) Kurs systemu Unix 21

Troch wi kszy program (3) Do sterowania aplikacj sªu» dwa przyciski show = Button(text = "Poka» warto±ci", command = pokazzmienne) koniec = Button(text = "Koniec", command = root.quit) Obsªuga przycisku Poka» zmienne def pokazzmienne(): if not glodny.get(): print "Nie jestes glodny!" else print "Masz ochot na " + danie.get() Kurs systemu Unix 22

Troch wi kszy program (4) Ustawienie na ekranie tego wszystkiego (w prostok tnej siatce) cb.grid(.lan -row 1 -column 0 -sticky "w" RB[0].grid(row=0, column=1, sticky= "w") RB[1].grid(row=1, column=1, sticky= "w") RB[2].grid(row=2, column=1, sticky= "w") show.grid(row=3, column=0, sticky= "w" koniec.grid(row 3, column= 1, sticky= "w" Zostaªo jeszcze uruchomi mainloop() Kurs systemu Unix 23

Wczytywanie tekstu Klasa Entry opisuje kontrolk sªu» c do wpisywania tekstu. Opcja textvariable = n oznacza,»e tekst traa do zmiennej n. Opcja show '*' oznacza,»e zamiast tekstu pojawiaj si gwiazdki. Kurs systemu Unix 24

Suwak Za pomoc suwaka wczytujemy liczb caªkowit. Suwak opisuje klasa Scale, ma on opcje: orient, orientacja, np. 'horizontal' _from oraz to, zasi g liczby tickinterval ja cz sto podziaªka variable zmienna. length dªugo± Mo»na poª czy suwak z polem edycyjnym za pomoc tej samej zmiennej. Kurs systemu Unix 25

Geometria U»ywa si nast puj cych jednostek: m, c, i, p oznaczaj cych, odpowiednio: milimetry, centymetry, cale, punkty ekranowe. W opcjach wymagaj cych argumentu b d cego dªugo±ci, nale»y po liczbie wypisa jej miano, np length = '3i'. Kurs systemu Unix 26

Metoda pack Umieszcza kontrolki poczynaj c od kraw dzi okna/kontrolki nadrz dnej. Ka»da kontrolka wie, która kontrolka jest dla niej nadrz dna. U»ywali±my opcji padx, pady. Opcje ipadx, ipady sprawiaj»e kontrolka si rozszerza i puchnie tak, by przerwa byªa minimalna. Kurs systemu Unix 27

Metoda grid Polecenie grid sªu»y do tworzenia tabel i rozmieszczania ró»nych rzeczy w prostok tnej siatce. Kontrolk umieszcza si w podrz dnym oknie, poªo»enie okre±laj opcje row oraz column. Mo»na rozci gn obszar kontrolki za pomoc rowspan n oraz columnspan W ramach przydzielonego obszaru mo»na rozci gac kontolk za pomoc opcji sticky. Przykªadowo sticky e zakotwicza konrolk po prawej stronie, sticky ew sprawia,»e mo»e si ona rozci gac ze wschodu na zachód. Kurs systemu Unix 28

Uwaga! Nie nale»y ª czy w jednym oknie metod pack oraz grid! Kurs systemu Unix 29

Powi zania Metoda bind ª czy zdarzenie z kontrolk i poleceniem. Zawiera dwa argumenty: napis opisuj cy zdarzenie oraz funkcj obsªuguj c zdarzenie. Ta funkcja powinna bra argument typu Event z niego da si odczyta ró»ne informacje dotycz ce zdarzenia. Przykªadowe nazwy zdarze«<keypress-left>, <Control-Button-1>, <Alt-Button-2>, <ButtonRelease-1>, <Enter>, <Double-Button-2> <KeyPress-Right>, <Alt-KeyPress-Space>... Wi cej przykªadów mo»na uzyskac pisz c man bind (cho pod t nazw mo»e by polecenie basha) lub man event. Kurs systemu Unix 30

Zdarzenia Zdarzenie (typ event) ma takie mi dzy innymi atrybuty: x,y,x_root,y_root wspóªrz dne zdarzenia (we wspóªrz dnych okna zdarzenia lub okna gªównego) widget kontrolka, której zdarzenie dotyczy keysym nazwa klawisza, na przykªad 'left' time czas zdarzenia Kurs systemu Unix 31