Widżety Superkaramby znajdziemy w katalogu
.kde/share/apps/superkaramba/themes/. Każdy widżet składa się z katalogu oraz pliku pythona i pliku .theme - wszystkie o tej samej nazwie. Plik .theme określa początkową lokację widżetu, czas jego odświerzania oraz potencjalnie inne dane. Plik pythona zawiera wykonywany kod. W katalogu mogą być inne pliki wykorzystywane przez dany widżet.
- Stwórz katalog
test (w dowolnym miejscu)
- Stwórz plik
test.py i
test.theme w tym katalogu
- Edytuj plik
test.theme i dodaj:
KARAMBA X=200 Y=200 W=351 H=251 INTERVAL=1000 LOCKED=true
Gdzie
X, Y - lokacja widżetu na ekranie,
W, H - wysokość i szerokość widżetu,
INTERVAL - interwał aktualizacji widżetu,
LOCKED - wartość true blokuje jego przesuwanie, false je umożliwia.
Najprostszy kod
test.py wyglądałby tak:
# -*- coding: utf-8 -*-
import karamba
# wywoływane przy uruchamianiu widgetu
def initWidget(widget):
pass
# wywoływane za każdym razem odświerzenia
def widgetUpdated(widget):
pass
# wywoływane po kliknięciu
def widgetClicked(widget, x, y, button):
pass
# wywoływane po ruchu myszy
def widgetMouseMoved(widget, x, y, button):
pass
print 'Załadowano Widget'
Następnie z konsoli uruchom superkarambę (polecenie
superkaramba). Otwórz lokalny motyw wskazując na stworzony plik theme. Widget powinien zostać załadowany a w konsoli powinien pojawić się tekst "Załadowano Widget". Gdy znamy już podstawy możemy przejść do tworzenia prawdziwych widgetów.
Podstawą będzie dokumentacja API
na stronie projektu. Teraz dodamy do naszego widżetu tło i tekst:
# -*- coding: utf-8 -*-
import karamba
def initWidget(widget):
# wyświetlenie grafiki tlo.png
karamba.createImage(widget, 1, 1, 'tlo.png')
# stworzenie napisu
napis = karamba.createText(widget, 10, 10, 150, 30, 'Test')
# zwiększenie rozmiaru tekstu
karamba.changeTextSize(widget, napis, 20)
def widgetUpdated(widget):
pass
def widgetClicked(widget, x, y, button):
pass
def widgetMouseMoved(widget, x, y, button):
pass
print 'Załadowany'
Grafikę umieszczamy w tym samym katalogu co kod widżetu. Po ponownym załadowaniu (może wymagać restartu superkaramby) powinniśmy zobaczyć użytą grafikę jak i napis.
Teraz dodamy trochę interakcji:
# -*- coding: utf-8 -*-
import karamba
from time import time
def initWidget(widget):
global napis
karamba.createImage(widget, 1, 1, 'tlo.png')
napis = karamba.createText(widget, 10, 10, 150, 30, 'Test')
karamba.changeTextSize(widget, napis, 20)
def widgetUpdated(widget):
karamba.changeText(widget, napis, str(time()))
def widgetClicked(widget, x, y, button):
pass
def widgetMouseMoved(widget, x, y, button):
pass
print 'Załadowany'
Dodaliśmy do
widgetUpdated metodę
changeText zmieniającą wartość podanego obiektu Text (u nas "napis"). Zmieniamy go na bierzący znacznik czasu - otrzymujemy coś w rodzaju zegara jako że
widgetUpdated wywoływane jest co określony w pliku .theme okres czasu.
- Dodane: 14.07.2008 przez riklaunim