rozdział 1: WSTĘP DO PROGRAMOWANIA WIZUALNEGO

Podobne dokumenty
Dodanie nowej formy do projektu polega na:

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

WINDOWS 7. Kontakt do organizatora: Fundacja Aktywny Senior tel , mail:

Pakiety matematyczne. Matematyka Stosowana. dr inż. Krzysztof Burnecki

MATLAB Prowadzący: dr hab. inż. Marek Jaszczur Poziom: początkujący

Architektura interfejsu użytkownika

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Komputery I (2) Panel sterowania:

Programowanie w środowisku graficznym GUI

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018

Nr: 15. Tytuł: Kancelaris w systemie Windows 8 i Windows 8.1. Data modyfikacji:

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Robert Barański, AGH, KMIW MathScript and Formula Nodes v1.0

Rozdział II. Praca z systemem operacyjnym

Wykład 9. Projektowanie interfejsu użytkownika

Zdarzenia Klasa Application Powiadomienia Toast AlertDialog

Arkusz strona zawierająca informacje. Dokumenty Excela są jakby skoroszytami podzielonymi na pojedyncze arkusze.

Instrukcja instalacji oprogramowania Flow!Works na komputerze z systemem Windows 7

Instrukcja obsługi elektronicznego modułu reklamacyjnego aplikacji KAMSOFT wdrożenie rozwiązań w hurtowniach farmaceutycznych Grupy Neuca

Temat: Organizacja skoroszytów i arkuszy

Korzystanie z aplikacji P-touch Transfer Manager

Laboratorium 8 ( Android -pierwsza aplikacja)

5.4. Tworzymy formularze

Instrukcja instalacji oraz konfiguracji sterowników. MaxiEcu 2.0

Programowanie obiektowe

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Laboratorium Systemów Operacyjnych

Tworzenie bazy danych na przykładzie Access

Rozdział 2. Konfiguracja środowiska pracy uŝytkownika

Wstęp 5 Rozdział 1. Instalacja systemu 13. Rozdział 2. Logowanie i wylogowywanie 21 Rozdział 3. Pulpit i foldery 25. Rozdział 4.

Sekretne menu Start. Przycisk pulpitu

Wstęp do instalacji oprogramowania CAD Projekt w systemach operacyjnych Windows Vista, Windows 7, Windows 8

Edycja szablonu artykułu do czasopisma

Tworzenie menu i authoring w programie DVDStyler

Instalacja NotifySync

PRZEWODNIK PO ETRADER PEKAO ROZDZIAŁ I. JAK ZACZĄĆ PRACĘ Z ETRADER PEKAO? SPIS TREŚCI

Spis treści. Integracja Shoper

Zaawansowany kurs języka Python

Arkusz kalkulacyjny MS Excel 2010 PL.

1.Instalacja. Przechodzimy przez kolejne okna instalatora klikacjąć Dalej. wolek.zallegro.pl

Padlet wirtualna tablica lub papier w Internecie

Rozdział 5. Administracja kontami użytkowników

UMOWY INSTRUKCJA STANOWISKOWA

Celem ćwiczenia jest zapoznanie się z podstawowymi funkcjami i pojęciami związanymi ze środowiskiem AutoCAD 2012 w polskiej wersji językowej.

Systemy operacyjne I Laboratorium Część 3: Windows XP

Urządzenia zewnętrzne

CENTRUM ROZWOJU. ul. Krótka KRAKÓW. ZNAKI I SYGNA Y DROGOWE ZAKTUALIZOWANE Pakiet EXT03 wersja 1.1

PODRĘCZNIK UŻYTKOWNIKA PROGRAMU INTERCLINIC MODUŁ SZPITAL

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows Vista

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Jak dodać własny szablon ramki w programie dibudka i dilustro

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Programowanie na poziomie sprzętu. Programowanie w Windows API

Obserwacje w Agrinavia MOBILE OGÓLNE INFORMACJE

1. 2. System operacyjny Windows. Podstawowe działania na oknach

Tablet bezprzewodowy QIT30. Oprogramowanie Macro Key Manager

Jak przesłać mapę do urządzenia lub na kartę pamięci?

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word)

2.3.8 Personalizacja środowiska GNOME

INSTRUKCJA UŻYTKOWNIKA

Skaner Mustek Scan Express

Przed skonfigurowaniem tego ustawienia należy skonfigurować adres IP urządzenia.

Podręcznik ustawień Wi-Fi

Dokument zawiera podstawowe informacje o użytkowaniu komputera oraz korzystaniu z Internetu.

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Laboratorium z Grafiki InŜynierskiej CAD. Rozpoczęcie pracy z AutoCAD-em. Uruchomienie programu

Ćwiczenia z systemu operacyjnego WINDOWS

etrader Pekao Podręcznik użytkownika Jak zacząć pracę z etrader Pekao?

LeftHand Sp. z o. o.

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

Ćwiczenie 6. Wiadomości ogólne.

Windows 7.

Ustawienia personalne

Urządzenia zewnętrzne Instrukcja obsługi

O środowisku Windows. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Paski narzędzi w WORD 2003

Programowanie obiektowe

UNIFON podręcznik użytkownika

Korzystanie z menu, przycisków, pasków

5. Administracja kontami uŝytkowników

APLIKACJE WCHODZĄCE W SKŁAD PAKIETU MS OFFICE DLA UŻYTKOWNIKÓW DOMOWYCH

Programowanie Obiektowe GUI

Podstawy technologii cyfrowej i komputerów

Urządzenia zewnętrzne

Kopiowanie, przenoszenie plików i folderów

Utworzenie pliku. Dowiesz się:

Wstawianie filmu i odtwarzanie go automatycznie

Sposoby zdalnego sterowania pulpitem

SKRÓCONA INSTRUKCJA INSTALACJI MODEMU I KONFIGURACJA POŁĄCZENIA Z INTERNETEM NA WINDOWS 8 DLA AnyDATA ADU-510L

Informatyka II. Laboratorium Aplikacja okienkowa

Galileo v10 pierwszy program


Przewodnik Google Cloud Print

Urządzenia zewnętrzne Instrukcja obsługi

Divar - Archive Player. Instrukcja obsługi

Transkrypt:

rozdział 1: WSTĘP DO PROGRAMOWANIA WIZUALNEGO ostatnia modyfikacja: 17.03.17

Co to jest programowanie wizualne?

to ogół technik tworzenia programów pracujących w środowisku GUI (Graphical User Interface)

Skąd się wzięło GUI? przez wiele lat jedyne sposoby komunikacji z użytkownikiem opierały środkach udostępnianych przez terminale tekstowe (czyli tak naprawdę elektroniczne dalekopisy)

MENU ==== A) B) C) D) Z) dodaj towar do magazynu usuń towar z magazynu zmień stan towaru w magazynie pokaż towary w magazynie wróć do poprzedniego menu Podaj opcję ====> _

Klasyk: IBM3270

Skąd się wzięło GUI? pierwsze użyteczne GUI zostało skonstruowane w latach '80 XX wieku w laboratoriach firmy Xerox (tak, tak!) wypracowane tam koncepcje wyciekły następnie do firm produkujących komputery i systemy operacyjne (np. Apple) mysz jeszcze nie istniała, więc używano piór świetlnych i tzw. trackballi

Trackball:

Pióro świetlne:

GUI znaki szczególne: pracujący program uzewnętrznia swoje działanie poprzez wykreowanie swojego okna (ang. window) bądź okien

GUI znaki szczególne: zwykle okna wyposażone są w dekoracje (ang. decorations) dekorowaniem okien zajmuje się (najczęściej) system operacyjny i ich wygląd oraz zachowanie są znakiem szczególnym konkretnego systemu niektóre systemy wykluczają wpływ użytkownika na sposób dekorowania okien, inne wręcz przeciwnie istnieją również systemy, w których okno pracującego programu zawsze pokrywa cały ekran i nie ma żadnych albo prawie żadnych dekoracji (np. Android)

GUI znaki szczególne: użytkownik oddziaływuje na zachowanie programu poprzez interakcje kursora myszy (kliknięcia), dotykanie wyznaczonych elementów GUI (pacnięcia) bądź naciskanie wskazanych klawiszy widoczne na ekranie elementy, będące adresatami takich akcji, nazywa się kontrolkami lub widżetami (ang. controls, widgets)

GUI dygresja: warto pamiętać, że cała koncepcja GUI została zainspirowana pulpitami sterowniczymi urządzeń elektrycznych i elektronicznych ślady tej inspiracji widać co krok (nawet w nazewnictwie)

GUI znaki szczególne: w obrębie okna zawsze dokładnie jeden z widżetów posiada tzw. skupienie (ang. focus), co oznacza, że właśnie on jest typowany jako domyślny adresat niektórych akcji użytkownika np. naciśnięcie klawisza <Spacja> może uruchomić różne czynności w zależności od tego, jaki element okna ma w danym momencie skupienie

Anatomia okna: Okno Okno

Anatomia okna: Dekoracja Dekoracja (przycisk (przyciskzamykania) zamykania)

Anatomia okna: Dekoracja Dekoracja (ramka (ramkazzbelką belkątytułową) tytułową)

Anatomia okna: Dekoracja Dekoracja (tytuł (tytuł title) title)

Anatomia okna: Widżet Widżet (ikona (ikona icon) icon)

Anatomia okna: Widżet Widżet (etykieta (etykieta label) label)

Anatomia okna: Widżet Widżet (przycisk (przycisk button) button) co cowięcej, więcej,jest jesttotoprzycisk przyciskze zeskupieniem! skupieniem! skąd skądtotowiemy? wiemy?co cototopowoduje? powoduje?

Anatomia okna: Widżet Widżet (przycisk (przycisk button) button) ten tenprzycisk przycisknie niema maskupienia! skupienia!co cozrobić zrobićaby abyjejemiał? miał?

Krótki przewodnik po świecie widżetów

Ikona Ikonaiitytuł tytułokna okna (zwykle (zwyklepod podkontrolą kontroląsystemu systemuoperacyjnego) operacyjnego)

Kontrolki Kontrolkiokna okna (zwykle (zwyklepod podkontrolą kontroląsystemu systemuoperacyjnego) operacyjnego)

Kontrolka Kontrolkazmiany zmianyrozmiaru rozmiaruokna okna

Pasek Pasekstatusu statusu

Pasek Pasekmenu menu

Check CheckBox Box (każdy (każdymoże możebyć byćzaznaczony zaznaczonybądź bądźnie) nie)

Radio RadioButton Button (zwykle (zwyklewystępują występująwwgrupach grupach dokładnie dokładniejeden jedenwwgrupie grupiemoże możebyć być wybrany) wybrany)

Pole Poletekstowe/edycyjne tekstowe/edycyjne (do (dowprowadzenia/edycji wprowadzenia/edycjijednego jednegowiersza wierszatekstu) tekstu)

Wielowierszowe Wielowierszowepole poletekstowe/edycyjne tekstowe/edycyjne (do (dowprowadzenia/edycji wprowadzenia/edycjiwielu wieluwierszy wierszytekstu) tekstu)

Etykieta Etykieta ( sztywny ( sztywny - -co conie nieoznacza, oznacza,że żeniezmienny niezmienny tekst tekstwwobrębie obrębieokna) okna)

Ikona Ikona ( sztywny ( sztywny - -co conie nieoznacza, oznacza,że żeniezmienny niezmienny obrazek obrazekwwobrębie obrębieokna) okna)

Pasek Pasekpostępu postępu (ilustruje (ilustrujezaawansowanie zaawansowaniejakiegoś jakiegośprocesu) procesu)

Przycisk Przycisk (jeśli (jeślizostanie zostaniekliknięty, kliknięty,wywoła wywołajakąś jakąśczynność) czynność)

Pionowy Pionowypasek pasekprzewijania przewijania( winda, ( winda, suwak ) suwak ) (ilustruje (ilustrujepołożenie położeniei iwymiar wymiarwwkierunku kierunkupionowym) pionowym)

Poziomy Poziomypasek pasekprzewijania przewijania (ilustruje (ilustrujepołożenie położeniei iwymiar wymiarwwkierunku kierunkupoziomym) poziomym)

Co z tego wszystkiego wynika?

tradycyjny model programowania, w którym programista sprawdza po kolei wszystkie możliwe akcje użytkownika, jest kompletnie nieprzydatny przy programowaniu zachowania GUI! liczba różnych możliwych posunięć użytkownika jest tak pokaźna, że ciągłe sprawdzanie stanu okna i wszystkich widżetów staje się niesłychanie uciążliwe co gorsza, jedne widżety mogą wpływać na inne, co dodatkowo komplikuje całe zagadnienie spróbujmy to sobie wyobrazić...

poczekaj_na_akcję_użytkownika() if nacisnął_przycisk_1():... elif kliknął_checkbox_1():... elif kliknął_radiobutton_1():... elif przesunął_mysz_nad_ikonę_1():... elif przeciągnął_pasek_przewijania_1():...

efektywne programowanie GUI wymaga zupełnie innego stylu programowania i zupełnie innego myślenia o programowaniu jest to tzw. programowanie zdarzeniowe (ang. event programming)

programowanie zdarzeniowe: wykrywanie i rejestrowanie akcji użytkownika pozostaje poza kontrolą programisty i pozostaje w totalnej gestii tzw. kontrolera/zarządcy zdarzeń programista obowiązany jest powiadomić kontroler jak życzy sobie reagować (bądź nie) na konkretne zdarzenia odbywa się to drogą pisania funkcji, które są wywoływane przez kontroler w chwili zajścia pewnego zdarzenia taka funkcja to tzw. event handler (nieprzetłumaczalne, niestety, uznajmy, że jest to obsługiwacz zdarzenia )

zasadnicza różnica: załóżmy, że mamy funkcję o nazwie ZróbCoś(), która... coś robi chcemy, aby to coś zostało zrobione, kiedy użytkownik kliknie przycisk o nazwie No to do roboty! w podejściu klasycznym: to my sami musimy wykryć fakt kliknięcia przycisku to my musimy własnoręcznie wywołać funkcję ZróbCoś() mamy pełną kontrolę nad biegiem zdarzeń i ponosimy za to pełną odpowiedzialność w podejściu zdarzeniowym: kontroler zdarzeń sam wykrywa fakt kliknięcia przycisku kontroler zdarzeń sam wywołuje naszą funkcję ZróbCoś() wszystko to odbywa się za naszymi plecami (na szczęście!) - nie mamy kontroli nad tym jak i kiedy to się stanie, a pełną odpowiedzialność za bieg zdarzeń ponosi kontroler

co może być zdarzeniem? kliknięcie przycisku myszki przemieszczenie myszki naciśnięcie/puszczenie klawisza pacnięcie palcem przeciągnięcie palcem/palcami upływ czasu...

programowanie zdarzeniowe: niestety, praktycznie każdy system operacyjny dostarcza własny zestaw usług od obsługi GUI, a niektóre (np. Linux) mogą mogą definiować wiele różnych kompletnie odmiennych standardów definiowania mechanizmów GUI (dwa najważniejsze to GTK i Qt) oznacza to, że aby móc programować przenośne (ang. portable) programy GUI potrzebny jest jakiś pośrednik, który dopasuje jednolity standard programistyczny do zmiennnych wymagań i usług różnych systemów operacyjnych taki pośrednik (adapter) nosi nazwę widget toolkit, GUI toolkit lub UX library ) UX User experience

Tk: wolny i otwarty GUI toolkit rozwijany od 1991 roku wieloplatformowy (dostępny pod MS Windows, Unix/Linux, MacOS) definiuje i obsługuje ponad 30 różnych uniwersalnych widżetów dostępny w wielu różnych językach programowania (oczywiście, również w Pythonie)

Tkinter: uniwersalny interfejs programistyczny pomiędzy programem napisanym w Pythonie, a toolkitem Tk Tkinter Tk interface nie jest jedynym GUI toolkitem dostępnym w Pythone - inne to np. PyQt (interfejs do toolkitu Qt), PyGTK (interfejs do toolkitu GTK) wolny i otwarty przykładem aplikacji napisanej z użyciem Tkinter jest IDLE (tak, tak!)