Search on blog:

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() czyli głó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śnie mainloop.

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))

Tworzenie widgetu w Tkinter

Przykład wykorzystania dziedziczenia z Frame do stworzenia widgetu.
Poniżej własny widget, który składa pola do wprowadzania tekstu Entry oraz pola Label w którym na bieżąco pokazywany jest tekst wpisany w Entry.

Potem ten widget jest wykorzystany wielokrotnie w głównym oknie i widać, że pojawia się wielokrotnie para Label i Entry …

Najprostszy program w Tkinter

Poniżej najprostszy przykład programu w Tkinter pod Python 2.7 i 3.x. Dla wersji 3.x wystarczy zamienić nazwę modułu z Tkinter na tkinter (z małej litery).
Program oprócz wyświetlenia okienka nic nie robi ale to jest minimum jakie potrzeba do uruchomienia programu.

from Tkinter import *

Tk().mainloop()

Ponieważ …

Bind w Tkinter czyli przykłady przypisywania obsługi zdarzeń.

Proste przykłady użycia bind

Na początek okno z kilkoma przyciskami. Zadałem oknu wielkość aby mieć też dostęp bezpośrednio do powierzchni okna.

Do przy przycisków przypisałem funkcje za pomoca command=

#-*- coding: utf-8 -*-

from Tkinter import *

def msg():
    print "Wciśnięto (jakiś) Button"

master = Tk()
master.geometry('300x150+100+100')

b_a = Button(master …

TextEntryDialog proste okno dialogowe do wprowadzania tekstu w wxPython

Najprostrzy przykład użycia

Tworzenie okna dialogowego do wprowadzania tekstu, wyświetlenie, sprawdzanie czy wciśnięto OK i pobranie wprowadzonego tekstu

#!/usr/bin/python

import wx

# inicjacja wx
app = wx.App()

# definicja okna dialogowego
dlg = wx.TextEntryDialog(None, "Podaj tekst")

# pokazanie okna i pobranie informacji o sposobie zamkniecia okna
if dlg.ShowModal() == wx …

« Page: 1 / 1 »