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:
15
Embed
WxPython jest platformą pozwalającą tworzyd aplikacje …zsi.ii.us.edu.pl/~nowak/python/wxPython_lab1.pdf · 2013. 8. 28. · WxPython jest platformą pozwalającą tworzyd aplikacje
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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:
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:
self.Destroy()
else:
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: