Najprostszy program w Pyglet
Poniżej najprostszy przykład programu w Pyglet pod Python 2.7 i 3.x.
Program oprócz wyświetlenia okienka nic nie robi ale to jest minimum jakie potrzeba do uruchomienia programu.
import pyglet
pyglet.window.Window()
pyglet.app.run()
Najpierw importujemy moduł pyglet.
Potem tworzymy główne okno Window(), które pojawia się od razu.
Na koniec uruchamiamy funkcję run(), która wykonuje się aż do zamknięcia okna
(więc instrukcje umieszczone po tej funkcji wykonają się dopiero po zakmnięciu okna) i zapewnia ona obsługę wszelkich zdarzeń zachodzących w oknie - rozpoznawanie ruchu myszki, kliknięć przycisków, kliknięć klawiszy - i przesyłanie tych informacji do elementów (widgetów) wewnątrz okna. Odpowiedzialna jest też za wywoływnaie funkcji przypisanych widgetom przez programistę (np. rekcja na kliknięcie przycisku w oknie) jak i tych przypisanych domyślnie (np. rysowanie widgetów). Wszystko się to dzieje w pętli, która chodzi w nieskończoność.
W Tkinter ta funkcja nazywa się jest
mainloop()czyligłówna pętla.
W PyGame nie ma takiej funkcji i trzeba samemu ją napisać.
Zwykle ma ona postać nieskończonej pętli obsługującej zdarzenia i potocznie nazywa się właśniemainloop.
Bez tej funkcji nie da się nawet zamknąć okna.
Stworzone okno warto przypisać do zmiennej aby można było robić z nim coś więcej. W poniższym do okna zostanie przypisana funkcja, która będzie wypisywać w terminalu informacje o zdarzeniach jakie zdarzyły się w oknie. Może to być bardzo przydatne w zapoznaniu się z instniejącymi zdarzeniami.
import pyglet
window = pyglet.window.Window()
window.push_handlers(pyglet.window.event.WindowEventLogger())
pyglet.app.run()
Można jednak przypisać takie rzeczy jak wielkość i tytuł okna
import pyglet
window = pyglet.window.Window()
window.set_caption("Pyglet Minimum")
window.set_size(300,200)
pyglet.app.run()
Wartości można podawać także jako parametry przy tworzeniu obiektu a potem ewentualnie zmieniać jak powyżej.
Są też takie, które można podać jedynie przy tworzeniu obiektu i potem możne jedynie odczytac ich stan ale nie można już ich zmienić np. resizable.
import pyglet
window = pyglet.window.Window(300, 200,
caption="Pyglet Minimum",
resizable=True
)
print "Tytul:", window.get_caption()
print "Rozmiar:", window.get_size()
print "Czy rozciagalne:", window.resizable
pyglet.app.run()
Wartość visible warto podać już przy tworzeniu jeśli chcemy aby już na starcie było niewydoczne.
import pyglet
window = pyglet.window.Window(visible=False)
pyglet.app.run()
W powyższej postaci okno nie pojawi się i nie będzie możliwości jego pokazania i zamknięcia.
Pyglet pozwala stworzyć kilka okien (czego nie potrafi PyGame)
import pyglet
window1 = pyglet.window.Window(caption='Okno #1')
window1.set_location(0, 0)
window2 = pyglet.window.Window(caption='Okno #2')
window2.set_location(300, 300)
pyglet.app.run()
Dostępne metody i argumenty okna można zobaczyć w dokumentacji: Window Class
lub na szybko podejrzeć dzięki dir()
import pyglet
window = pyglet.window.Window()
print dir(window)
pyglet.app.run()
lub bardziej czytelnie umieszczając w osobnych liniach dzięki join()
import pyglet
window = pyglet.window.Window()
print "\n".join(dir(window))
pyglet.app.run()
ewentualnie bez tworzenia okna
import pyglet
print '\n'.join(dir(pyglet.window.Window))
furas.pl