Tworzenie widżetów Superkaramby
14 July 2008
Comments
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.Tworzenie Widgetu
- 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'
Tworzenie widżetów Superkaramby
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'
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'

RkBlog
Comment article