WxPython jest platformą pozwalającą tworzyd aplikacje okienkowe nie tylko dla systemu Windows ale i Mac czy Unix.



Podobne dokumenty
Programowanie w środowisku graficznym GUI

Dodanie nowej formy do projektu polega na:

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

Jeżeli w komputerze była już zainstalowana inna wersja Javy może pojawić się komunikat

Konfiguracja programu

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Architektura interfejsu użytkownika

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

KROK 17 i 18. Cel: Tworzymy oddzielne okno - O autorze. 1. Otwórz swój program. 2. Skompiluj i sprawdź, czy działa prawidłowo.

4. Certyfikaty dla pracy w systemie WOW w miejscu z siecią Internet UWAGA

I Tworzenie prezentacji za pomocą szablonu w programie Power-Point. 1. Wybieramy z górnego menu polecenie Nowy a następnie Utwórz z szablonu

Instrukcja instalacji i obsługi modemu ED77 pod systemem operacyjnym Windows 98 SE (wydanie drugie)

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa

Rozdział II. Praca z systemem operacyjnym

Platforma szkoleniowa krok po kroku. Poradnik Kursanta

Podstawy technologii WWW

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

Cel: Zastosowanie okien pytającychwyświetlających pytania i komunikaty (MessageBox). Klub IKS

Laboratorium 8 ( Android -pierwsza aplikacja)

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

OPERACJE NA PLIKACH I FOLDERACH

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.

5.2. Pierwsze kroki z bazami danych

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Aplikacja RACS Point. Instrukcja obsługi

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

Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0

Aplikacja CMS. Podręcznik użytkownika

Tworzenie prezentacji w MS PowerPoint

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

Visual Studio instalacja

DOKUMENTY I GRAFIKI. Zarządzanie zawartością Tworzenie folderu Dodawanie dokumentu / grafiki Wersje plików... 7

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

Instrukcja instalacji certyfikatu kwalifikowanego w programie Płatnik. wersja 1.8

Komputery I (2) Panel sterowania:

Stawiamy pierwsze kroki

1. Instalacja certyfkatu OSX 10.9

Założenia projektu: Projekt ma zadanie pokazać praktyczne zastosowanie App Inventor 2, poprzez stworzenie prostej aplikacji do nauki słówek.

Oficyna Wydawnicza UNIMEX ebook z zabezpieczeniami DRM

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

Panel Produkcyjny by CTI. Instrukcja

Cykl lekcji informatyki w klasie IV szkoły podstawowej. Wstęp

Instrukcja redaktora strony

INSTRUKCJA OBSŁUGI DIODOWEGO WYŚWIETLACZA TEKSTÓW PIEŚNI STEROWANEGO Z TABLETU 10,1 '

Podstawy technologii cyfrowej i komputerów

Laboratorium - Podgląd informacji kart sieciowych bezprzewodowych i przewodowych

Pakiet Sokrates Instrukcja instalacji

Minimalna wspierana wersja systemu Android to zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4.

Edytor tekstu MS Word podstawy

SimplySign logowanie i rejestracja na komputerze oraz dodanie certyfikatu do programu Płatnik

Program EWIDENCJA ODZIEŻY ROBOCZEJ INSTRUKCJA UŻYTKOWNIKA Przejdź do strony producenta programu

1. Jak utworzyć mapę z punktami korzystając z przeglądarki?

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

Tomography Tracking Instrukcja użytkownika

Sposoby zdalnego sterowania pulpitem

Laboratorium - Archiwizacja i odzyskiwanie danych w Windows Vista

Instrukcja dla usługi ModeView

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

Instrukcja instalacji programu SPSS Statistics 21

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

Instalacja pakietu Office 365 ProPlus wersja stand-alone/offline

e-podręcznik dla seniora... i nie tylko.

Maskowanie i selekcja

Ćwiczenie Zmiana sposobu uruchamiania usług

e-podręcznik dla seniora... i nie tylko.

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Platformy Programowania

Podstawy tworzenia prezentacji w programie Microsoft PowerPoint 2007

INSTRUKCJA EDYCJI PROFILU OSOBOWEGO W SERWISIE

HELIOS pomoc społeczna

Czcionki bezszeryfowe

Podstawowa konfiguracja modułu Szkolenia

Programowanie na poziomie sprzętu. Programowanie w Windows API

UWAGA BARDZO WAŻNE PROSIMY O ZWRÓCENIE NA TO SZCZEGÓLNEJ UWAGI

Laboratorium - Używanie programu Wireshark do obserwacji mechanizmu uzgodnienia trójetapowego TCP

SERWER AKTUALIZACJI UpServ

Program EWIDENCJA ODZIEŻY ROBOCZEJ INSTRUKCJA UŻYTKOWNIKA Przejdź do strony producenta programu

JAVA CZ.2 Programowanie obiektowe. poniedziałek, 20 kwietnia 2009

Windows Workflow Foundation (wprowadzenie - prosty przykład Sequential Workflow):

Instrukcja instalacji

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

Jak przygotować pokaz album w Logomocji

Program Raporter 3 - dokumentacja

Poradnik użytkownika pomoc techniczna

Aplikacje WWW - laboratorium

oprogramowanie mobilne Instrukcja obsługi PSR 2010

INSTALACJA DOSTĘPU DO INTERNETU

Tworzenie zamówienia. Tworzenie zamówienia ME21N. Instrukcja robocza. Cel Zastosuj tę procedurę, aby utworzyć zamówienie.

PWŚG Ćwiczenia 13. Ukończoną pracę należy przesłać na adres lub

Informatyka II. Laboratorium Aplikacja okienkowa

Aplikacje WWW - laboratorium

Laboratorium Systemów SCADA

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Jak posługiwać się edytorem treści

Zamawianie Taxi Instrukcja użytkownika

epuap Archiwizacja w Osobistym Składzie Dokumentów

W kolejnym odcinku zajmiemy się umieszczaniem w naszym projekcie zestawu ikon służących szybkiemu korzystaniu z opcji programu.

Tworzenie okna dialogowego w edytorze raportu SigmaNEST. część 1

Aplikacje mobilne. Pliki zasobów, grafiki, menu, podpinanie zdarzeń. dr Tomasz Jach Instytut Informatyki, Uniwersytet Śląski

ZN-DT350VE / ZN-DNT350VE / ZN-DWNT350VE Skrócona Instrukcja Uruchomienia

Transkrypt:

WxPython jest platformą pozwalającą tworzyd aplikacje okienkowe nie tylko dla systemu Windows ale i Mac czy Unix. Instalujemy: 1. Ze strony: http://www.wxpython.org/download.php#stable wybieramy odpowiednią wersję dla swojego systemu operacyjnego i wersji Pythona. Instalacja WxPython dla Windows http://www.wxpython.org/download.php 2. Używamy wxpythona przez importowanie tej biblioteki w każdym kodzie źródłowym pytona: Ale od początku:

wxpython składa się z 5 podstawowych modułów: Moduł Controls dostarcza wzorców podstawowych komponentów przy tworzeniu aplikacji (tzw. widgetów) np.: button, toolbar, notebook. Nazywamy je popularnie kontrolkami. Moduł Core dostarcza podstawowych klas: Object (matka wszystkich klas), Sizers (layouty widgetów), Events (zdarzenia), oraz klasy elementarnej grafiki jak Prostokąty (Rectangle) czy punkt (Point). GDI (graphics device interface) to zbiór klas pozwalających rysowad na widgetach. Mamy to klasy do manipulacji czcionkami (Font), kolorami (Colours), Brushes, Pens i Images (pędzel, czy obrazy). Misc to zbiór różnego typu klas i funkcji np. do logowania, konfiguracji aplikacji, ustawieo systemowych, wyświetlaniem czy sterowaniem aplikacją. Windows to grupa klas do tworzenia okna: formatek, okien czy całej aplikacji: Scrolled Window, Dialog, Panel czy Frame. Podstawowe Widgety: Widgety górnego poziomu (występuję zależnie od siebie): Kontenery (zawierające inne widgety): Dynamiczne widgety: Statyczne widgety:

Inne: Dziedziczenie: Każde okno może reagowad na zdarzenia a więc Button także. Klikając na przycisk (button) wywołujemy zdarzenie: wx.evt_command_button_clicked Aby widget mógł reagowad na zdarzenia musi dziedziczyd własności po klasie wx.evthandler. Krok 1. Pierwszy program Efektem kodu: Będzie okno: Interpretacja kodu: Linia 1: import wx znaczenie: importujemy pakiet WxPython Linia 2: app = wx.app() znaczenie: każdy obiekt wxpython musi mied przynajmniej jeden obiekt typu App

Linia 3: frame = wx.frame(none, -1, 'simple.py') znaczenie: obiekty typu wx.frame to typ kontenera, ponieważ nie ma nadrzędnego sobie kontenera bo jest głównym kontenerem aplikacji to wpisujemy None w miejscu odwołania do rodzica. Trzeci argument simple.py oznacza, że w tytule okienka będzie taki wlasnie napis. Linia 4: frame.show() znaczenie: musimy pokazad okno na ekranie Linia 5: app.mainloop() znaczenie: wyświetlanie dzieje się w pętli, dopóki innym zdarzeniem nie przerwiemy wyświetlania okna. Wx.Frame jest typem kontenera który nie zawiera ramek (Frame) czy dialogów (Dialog). Sklada się z paska tytułu, obszarów bocznych i środkowego do umieszczania komponentów. Konstruktor klasy dla wx.frame: Wx.DEFAULT_FRAME_STYLE to zbiór możliwych stylów okna: Wx.MINIMIZE_BOX, wx_maximize_box, wx_resize_border, wx_system_menu, wx.caption, wx_close_box, wx_clip_children. Krok 1a. Mała zmiana Wykonanie kodu: Praktycznie niczym się nie różni, chod w szczegółach się okaże, że nie można tego okna zminimalizowad. Krok 2. Ustalimy teraz rozmiar wyświetlanego okna. Wykonanie kodu: Spowoduje powstanie okna o rozmiarach: 250 x 200 pikseli.

Możemy także sterowad pozycją w której okno będzie wyświetlone na ekranie: Np. kod: Wyświetli okno (lewy górny róg okna) w pozycji 800 x 250. Zaś kod: Wyświetli okno dokładnie na środku ekranu. Krok 3: Komunikacja z użytkownikiem. Napiszemy aplikację która tworzy okienko z dwoma przyciskami (button) i polem tekstowym w którym wyświetlana jest aktualna wartośd licznika, którego możemy zmniejszad bądź zwiększad klikając na przyciski + i -.

Kod: import wx class LeftPanel(wx.Panel): def init (self, parent, id): wx.panel. init (self, parent, id, style=wx.border_sunken) self.text = wx.statictext(self, -1, '0', (140, 60)) button1 = wx.button(self, -1, '+', (10, 10)) button2 = wx.button(self, -1, '-', (10, 60)) self.bind(wx.evt_button, self.onplus, id=button1.getid()) self.bind(wx.evt_button, self.onminus, id=button2.getid()) def OnPlus(self, event): value = int(self.text.getlabel()) value = value + 1 self.text.setlabel(str(value)) def OnMinus(self, event): value = int(self.text.getlabel()) value = value - 1 self.text.setlabel(str(value)) class Communicate(wx.Frame): def init (self, parent, id, title): wx.frame. init (self, parent, id, title, size=(280, 200)) panel = wx.panel(self, -1) leftpanel = LeftPanel(panel, -1) hbox = wx.boxsizer() hbox.add(leftpanel, 1, wx.expand wx.all, 2) panel.setsizer(hbox) self.centre() self.show(true) app = wx.app() Communicate(None, -1, 'licznik') app.mainloop() Ćwiczenia: Spróbuj dodać jeszcze jeden przycisk, który będzie zerował wartość licznika.

Krok 4. Tworzenie Menu Aby dodad menu do naszej aplikacji potrzebujemy 3 elementów: 1. wx.menubar 2. wx.menuitem 3. wx.menu Wykonanie następującego kodu: Kod: import wx class SimpleMenu(wx.Frame): def init (self, parent, id, title): wx.frame. init (self, parent, id, title, size=(250, 150)) menubar = wx.menubar() file = wx.menu() file.append(-1, 'koniec', 'koniec programu') menubar.append(file, '&Plik') self.setmenubar(menubar) self.centre() self.show(true) app = wx.app() SimpleMenu(None, -1, 'proste menu') app.mainloop() To okno: Gdzie póki co nic się nie dzieje. Jeśli chcemy utworzyd cały pasek:

Wystarczy napisad następujący kod: Krok 5: obsługa zdarzeo Aby napisad taki program wystarczy użyd kodu: import wx class MenuExample(wx.Frame): def init (self, parent, id, title): wx.frame. init (self, parent, id, title, size=(250, 150)) menubar = wx.menubar() file = wx.menu() quit = wx.menuitem(file, 1, '&Quit\tCtrl+Q') quit.setbitmap(wx.bitmap('icons/exit.png')) file.appenditem(quit) self.bind(wx.evt_menu, self.onquit, id=1) menubar.append(file, '&File') self.setmenubar(menubar) self.centre() self.show(true) def OnQuit(self, event): self.close() app = wx.app() MenuExample(None, -1, '') app.mainloop() Klikając opcję Quit wywołujemy zdarzenie: wx.evt_menu, i wywołujemy metodę o nazwie onquit() która zamyka aplikację:

Każda taka opcja w menu (MenuItem) może byd elementem typu: normal item radio item check item np.: self.shst = view.append(id_stat, 'Show statubar', 'Show Statusbar', kind=wx.item_check) Potem sprawdzenie czy opcja jest włączona czy wyłączona def ToggleStatusBar(self, event): if self.shst.ischecked(): self.statusbar.show() else: self.statusbar.hide() Toolbar CreateToolBar(long style=-1, int winid=-1, String name=toolbarnamestr) Krok 6: tworzymy aplikację z menutoolbarem z dwoma przyciskami (2 obrazki): Czego efekt będzie następujący: Krok 7: okno dialogowe. Wykonaniem następującego kodu:

Będzie aplikacja: Klikając w przycisk: uruchomi się okno: Wybierając opcję Tak zamykamy aplikację, wybierając Nie wracamy do aplikacji. Krok 8: Okno dialogowe częśd II Czasami chcemy sprawdzid jakie zdarzenia kliknięto X do zamknięcia okienka i zapobiec temu. Chcemy np. zapytad użytkownika wtedy czy na pewno chce zamknąd okno czy jednak nie. Służą do tego okienka dialogowe. Gdy pojawi się okno: I klikniemy: wyświetli się okno z pytaniem

Jeśli teraz klinkiemy Tak program się zakooczy (okno się zamknie). Jeśli klikniemy Nie wrócimy do głównego okna. Kod programu który to realizuje wygląda następująco: Linia nr 5: Tutaj mówimy, iż okno główne ma mied obsługę zdarzeo na zamknięcie okna i wtedy jeśli przechwycone zostanie takie zdarzenie ma zostad wykonana funkcja OnClose(). Jej ciało (a więc instrukcje, które mają się wykonad gdy to zdarzenie nastąpi) wygląda następująco: A wiec tworzymy obiekt o nazwie dial. Będzie on oknem typu MessageDialog, z pytaniem w środku okna Jesteś pewien?, z tytułem Pytanie i możliwymi przyciskami: Tak i Nie. Jest tu także zaznaczone, że domyślnie ma byd zaznaczona opcja Nie i że ma byd w takim okienku inkona pytajnika. Aby nie można było się przełączyd na okienko głowne zanim się nie dokona jakiegoś wyboru należy użyd funkcji ShowModal(). Jeśli użyjemy instrukcji: ret = dial.showmodal() to potem będziemy mogli sprawdzid która opcja tak czy nie została wybrana przez użytkownika za pomocą następującego kodu: if ret == wx.id_yes: else: self.destroy() event.veto() To jest równoważne z zapisem:

if ret == wx.id_yes: self.destroy() elif ret == wx.id_no: event.veto() Krok 9: Zdarzenia w pythonie Napiszmy aplikację która tworzy okienko i sprawdza pozycję startową okienka, którego lokalizację zmieniamy przeciągając myszą okno z pozycji A do pozycji B. Za każdym razem zostanie wówczas odczytana aktualna pozycja lewego górnego okna programu i wyświetlona na ekranie wartości pozycji na osi X i Y. Aby sprawdzid zmianę lokalizacji komponentu użyjemy zdarzenia wx.moveevent i konkretnie klasy wx.evt_move. Komendą którą zwiążemy jakiś komponent z obsługą zdarzeo i pokażemy funkcję która ma byd wywołana gdy to zdarzenie nastąpi będzie: self.bind(wx.evt_move, self.onmove) Teraz musimy jeszcze wskazad co ma się stad w ciele funkcji OnMove(): def OnMove(self, event): x, y = event.getposition() Efekt: Gdy teraz przesuniemy okno w inne miejsce. Krok 10: Obsługa klawiatury:

Reakcja tylko na określony klawisz jest możliwa w pytonie w prosty sposób: 1. Najpierw pobieramy kod klawisza: keycode = event.getkeycode() 2. Sprawdzamy czy klawisz to ten o który nam chodzilo: if keycode == wx.wxk_escape: Jak widad sprawdzenie czy wciśnięto klawisz ESCAPE wykonane jest w następujący sposób: Gdybyśmy teraz chcieli sprawdzid i cos innego zrobid gdy z klawiatury użytkownik wciśnie klawisz np. A lub a wystarczy dodad fragment kodu: Krok 11: Message Dialogi

To pozwala stworzyd aplikację: Gdzie klikając na każdy z przycisków: info, error, question czy alert dostajemy inne okienka z komunikatami: Dla info: Dla error : Dla question : I dla alert :

Flaga wx.ok wx.cancel wx.yes_no wx.yes_default wx.no_default wx.icon_exclamation wx.icon_error wx.icon_hand wx.icon_information wx.icon_question znaczenie Show OK. button show Cancel button show Yes, No buttons make Yes button the default make No button the default show an alert icon show an error icon same as wx.icon_error show an info icon show a question icon