Zaawansowany kurs języka Python

Podobne dokumenty
Zaawansowany kurs języka Python

Kurs rozszerzony języka Python

Programowanie współbieżne Zadanie 5 - Podstawowe problemy programowania współbieżnego

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

Multimedia JAVA. Historia

Systemy operacyjne na platformach mobilnych 2 Programowanie aplikacji z graficznym interfejsem użytkownika w GTK+

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

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Zaawansowany kurs języka Python

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Zaawansowane aplikacje WWW - laboratorium

Kurs rozszerzony języka Python

Zaawansowany kurs języka Python

Kurs rozszerzony języka Python

Programowanie obiektowe

WirnikApp Documentation

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML

Swing Application Framework czyli tam i z powrotem. Copyright Piotr Kochański & Erudis,

Programowanie obiektowe

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Zaawansowany kurs języka Python

Rok akademicki: 2014/2015 Kod: MIO s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Instrukcja laboratoryjna cz.3

Kurs języka Python. Wykład 14. Marcin Młotkowski. 25 stycznia Python i Apache Pythonowe platformy aplikacyjne. Dystrybucja aplikacji w U*IX

Wprowadzenie do projektu QualitySpy

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

Dodanie nowej formy do projektu polega na:

Wątki i komunikacja między nimi w języku Python

Przegląd języka Python. Łukasz Anwajler

Zaawansowany kurs języka Python

Kurs języka Python. Wątki

Język Java część 2 (przykładowa aplikacja)

Programowanie i projektowanie obiektowe

Windows 10 - Jak uruchomić system w trybie

Tworzenie aplikacji GIS w technologii Flex. Tomasz Turowski Esri Polska

GUI - projektowanie interfejsów cz. II

Programowanie i projektowanie obiektowe

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

KARTA MODUŁU KSZTAŁCENIA

Spis treści. 1 Aplet. 2 Od aplikacji do apletu. 1 Aplet 1. 2 Od aplikacji do apletu 1. 3 Budowa apletu 3. 4 Cykl życia apletu 4

Aplikacje WWW - laboratorium

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

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Programowanie Obiektowe GUI

WPROWADZENIE DO JĘZYKA JAVA

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Zaawansowany kurs języka Python

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

REFERAT PRACY DYPLOMOWEJ

Programowanie w Ruby

Instrukcja obsługi przełącznika KVM ATEN CS661. Opis urządzenia. Instalacja urządzenia

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Serwery Statefull i Stateless

Laboratorium 1. Wprowadzenie do środowiska GnuRadio. I. Wprowadzenie

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C

Język Java część 2 (przykładowa aplikacja)

Programowanie wizualne

Ćwiczenie Zmiana sposobu uruchamiania usług

MentorGraphics ModelSim

2 INSTALACJA OPROGRAMOWANIA. 3 3 GŁÓWNE OKNO PROGRAMU 3 4 MODUŁ OBSŁUGI ARCHIWUM 7

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Hurtownie danych - przegląd technologii

Programowanie obiektowe

Testowanie. Ryszard Beczek & Piotr Miłkowski 1 04/11/07

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows

Twisted. Silnik Twojego Internetu. Jan Urbański Ducksboard. PyWaw #25, Warszawa, 10 czerwca 2013

REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych

Kurs Projektowanie i programowanie z Distributed Safety. Spis treści. Dzień 1. I Bezpieczeństwo funkcjonalne - wprowadzenie (wersja 1212)

Programowanie w Sieci Internet. Python: Wątki. Kraków, 12 grudnia 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Multi-projekt z przedmiotów Inżynieria oprogramowania, Współczesne bazy danych i Programowanie w języku Java

Kurs rozszerzony języka Python

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Programowanie obiektowe

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

IBM SPSS Statistics Version 22. Windows - Instrukcja instalacji (licencja wielokrotna)

Programowanie obiektowe zastosowanie języka Java SE

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Programowanie w Ruby

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

Analiza i projektowanie aplikacji Java

TRUST AMI MOUSE WIRELESS 300

Tango-RedPitaya. Tango device server for RedPitaya multi-instrument board. Grzegorz Kowalski 31 sierpnia 2015

16) Wprowadzenie do raportowania Rave

Szkolenie autoryzowane. MS 6232 Wdrażanie bazy danych Microsoft SQL Server 2008 R2

Szczegółowy opis zamówienia:

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Lokalizacja Oprogramowania

Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS

Transkrypt:

GTK+, cd 1 grudnia 2011

Plan wykładu Podstawy pracy z Glade Gazpacho 1 Podstawy pracy z Glade Gazpacho 2 Zadania okresowe Prawdziwe wątki 3

Co to jest Podstawy pracy z Glade Gazpacho Glade to graficzne narzędzie do projektowania interfejsów dla środowiska GTK+/.

Schemat działania (Glade-3) Podstawy pracy z Glade Gazpacho Glade produkuje plik XML, w którym jest opisany interfejs; Aplikacja wczytuje ten plik i buduje interfejs; Glade-3 jest niezależny od języka.

Podstawy pracy z Glade Gazpacho

Użycie projektu Podstawy pracy z Glade Gazpacho GtkBuilder Biblioteka budująca z XML interfejs graficzny.

Użycie projektu Podstawy pracy z Glade Gazpacho GtkBuilder Biblioteka budująca z XML interfejs graficzny. libglade Poprzednia biblioteka, używa innego, niekompatybilnego XML a.

Użycie projektu Podstawy pracy z Glade Gazpacho GtkBuilder Biblioteka budująca z XML interfejs graficzny. libglade Poprzednia biblioteka, używa innego, niekompatybilnego XML a. Konwersja plików gtk builder convert

Budowanie okna Podstawy pracy z Glade Gazpacho Ważne Trzeba pamiętać, że kontrolki mają swoje nazwy.

Budowanie okna Podstawy pracy z Glade Gazpacho Ważne Trzeba pamiętać, że kontrolki mają swoje nazwy. builder = gtk.builder() builder.add from file( wyklad.glade ) window = builder.get object( okno ) window.show() gtk.main()

Podłączanie sygnałów Podstawy pracy z Glade Gazpacho Ważne Podczas budowania interfejsu trzeba wskazać, jakim sygnałom odpowiadają jakie procedury obsługi (handlery).

Podłączanie sygnałów Podstawy pracy z Glade Gazpacho Ważne Podczas budowania interfejsu trzeba wskazać, jakim sygnałom odpowiadają jakie procedury obsługi (handlery). builder = gtk.builder() builder.add from file( wyklad.glade ) builder.connect signals({ on window destroy : gtk.main quit }) window = builder.get object( okno ) window.show() gtk.main()

Podłączanie menu Podstawy pracy z Glade Gazpacho Łatwe Tak samo jak w przypadku innych sygnałów.

Podłączanie menu Podstawy pracy z Glade Gazpacho Łatwe Tak samo jak w przypadku innych sygnałów. Dokładniej: trzeba w Glade wskazać procedurę obsługi (wpisać jej nazwę) dla sygnału activated; powiązać nazwę z prawdziwą procedurą: builder.connect signals({ on window destroy : gtk.main quit, on menu koniec : lambda widget : akcja(widget) })

Bardziej obiektowo Podstawy pracy z Glade Gazpacho class Rysownik: def init (self): builder = gtk.builder() builder.add from file( wyklad.glade ) self.window = builder.get object( okno ) builder.connect signals(self) def on window destroy(self, widget, data=none): pass def koniec(self, widget): pass rysunek = Rysownik() rysunek.window.show() gtk.main()

Gazpacho Podstawy pracy z Glade Gazpacho Inne narzędzie (napisane w PyGTK) do projektowania interfejsów graficznych, produkuje pliki zgodne z GtkBuilder.

Gazpacho Podstawy pracy z Glade Gazpacho Inne narzędzie (napisane w PyGTK) do projektowania interfejsów graficznych, produkuje pliki zgodne z GtkBuilder. Kiwi Z projektem Gazpacho jest związana biblioteka Kiwi (napisana w Pythonie), która w założeniu ma być lepszym GTK+.

Plan wykładu Zadania okresowe Prawdziwe wątki 1 Podstawy pracy z Glade Gazpacho 2 Zadania okresowe Prawdziwe wątki 3

Timeouty Zadania okresowe Prawdziwe wątki Uruchamianie zadań okresowych: id = gobject.timeout add(milisec, heart beat,...)

Timeouty Zadania okresowe Prawdziwe wątki Uruchamianie zadań okresowych: id = gobject.timeout add(milisec, heart beat,...) Funkcja heart beat powinna zwrócić True, w przeciwnym przypadku nie będzie dalej powtarzana.

Timeouty Zadania okresowe Prawdziwe wątki Uruchamianie zadań okresowych: id = gobject.timeout add(milisec, heart beat,...) Funkcja heart beat powinna zwrócić True, w przeciwnym przypadku nie będzie dalej powtarzana. Wyłączenie zadania gobject.source remove(id)

Funkcje idle Zadania okresowe Prawdziwe wątki Co program robi jak nic nie robi?

Implementacja funkcji Zadania okresowe Prawdziwe wątki Uruchamianie zadań gdy nic się nie dzieje: id = gobject.idle add(milisec, heart beat,...)

Implementacja funkcji Zadania okresowe Prawdziwe wątki Uruchamianie zadań gdy nic się nie dzieje: id = gobject.idle add(milisec, heart beat,...) Funkcja heart beat powinna zwrócić True, w przeciwnym przypadku nie będzie dalej powtarzana.

Implementacja funkcji Zadania okresowe Prawdziwe wątki Uruchamianie zadań gdy nic się nie dzieje: id = gobject.idle add(milisec, heart beat,...) Funkcja heart beat powinna zwrócić True, w przeciwnym przypadku nie będzie dalej powtarzana. Wyłączenie zadania gobject.source remove(id)

Monitorowanie we/wy Zadania okresowe Prawdziwe wątki Można kontrolować otwarte pliki (w tym pliki związane z sieciami, gniazdami czy potokami). Co możemy monitorować (warunki) gobject.io IN są dane gotowe do odczytu gobject.io OUT plik jest gotów do zapisu gobject.io PRI są pilne dane do odczytu gobject.io ERR błąd gobject.io HUP zerwanie połączenia

Jak monitorować Zadania okresowe Prawdziwe wątki Włączenie monitorowania id = gobject.io add watch(plik(otwarty), warunek, monitor)

Jak monitorować Zadania okresowe Prawdziwe wątki Włączenie monitorowania id = gobject.io add watch(plik(otwarty), warunek, monitor) funkcja monitorująca def monitor(źródło, warunek): Funkcja powinna zwrócić True jeśli ma dalej monitorować.

Korzystanie z wątków Zadania okresowe Prawdziwe wątki Dobra wiadomość threading.thread działa.

Korzystanie z wątków Zadania okresowe Prawdziwe wątki Dobra wiadomość threading.thread działa. Zła wiadomość Ale nie jest to takie proste.

Wersja 1. Zadania okresowe Prawdziwe wątki Wątek nie odwołuje się do GUI Przed wywołaniem gtk.main() import gobject gobject.threads init()

Przykład Zadania okresowe Prawdziwe wątki button.connect( clicked, lambda x: threading.thread(target=hello).start())

Interakcja wątków z GUI Zadania okresowe Prawdziwe wątki Inicjowanie gtk.gdk.threads init()

Uruchomienie aplikacji Zadania okresowe Prawdziwe wątki gtk.threads enter() gtk.main() gtk.threads leave()

Szkielet kodu w wątku Zadania okresowe Prawdziwe wątki gtk.threads enter() try: myentry.set text( foo ) finally: gtk.threads leave()

Zadania okresowe Prawdziwe wątki Szkielet kodu w wątku, wersja polecana with gtk.gdk.lock:...

Plan wykładu 1 Podstawy pracy z Glade Gazpacho 2 Zadania okresowe Prawdziwe wątki 3

Co to jest GNU Network Object Model Environment

A co jest ważne Więcej kontrolek (rozbudowane GTK+); desktop, aplikacje mogą się integrować z desktopem; własne aplety (dla środowiska ); wsparcie dla tworzenia róznych wersji językowych.

GLADE i używa LibGlade

Przykład import gtk import gnome.ui import gtk.glade gnome.init( Wykład, 0.1 ) aplikacja = gtk.glade.xml( gnome.glade ) gtk.main()

Zła wiadomość Są błędy, ale libglade nie jest już naprawiane.

Jak ktoś potrzebuje aplikacja = gnome.ui.app( Aplikacja, Okno aplikacji ) aplikacja.show() gtk.main()