===== Beispiel Plasmoid =====
Dieses Beispiel soll erklären wie grundsätzlich ein Plasmoid erstellt werden kann. Weitere Informationen über das Schreiben von Plasmoids und das anpassen des UIs werden in diesem Artikel nicht behandelt.
Als erste Adresse für weitere Informationen wird [[http://techbase.kde.org/Development/Tutorials/Plasma | diese Seite]] empfohlen.
====== Plasmoids erstellen ======
**Plasmoids** sind kleine Applets, die am Desktop oder in der Taskleiste von **KDE4** angezeigt werden können.
Derzeit gibt es bereits eine große Menge verschiedenster **Plasmoids**, mit einem umfangreichen Funktionsangebot. Grundsätzlich existieren verschiedene Möglichkeiten wie **Plasmoids** erstellt werden können. Mit einer Skript-Sprache wie **Python** oder direkt in **C++**.
In diesem Artikel wird als Beispiel das Plasomid **"Hello World!"** angelegt.
===== Die Struktur Aufbauen =====
Bei der Erstellung von Plasmoids muss eine definierte Verzeichnisstruktur eingehalten werden. Dazu muss zuerst das **Hauptverzeichnis** mit dem Namen des Plasmoids angelegt werden. Darunter das Verzeichnis ''contents'' und darunter ''code''.
Alle Befehlsaufrufe in der Kommandozeile die das Plasmoid direkt betreffen (z.B. Paket erzeugen, Fehlersuche), werden direkt aus dem **Hauptverzeichnis** heraus gestartet.
Um die Verzeichnisstruktur für das Beispiel anzulegen kann folgender Befehl eingegeben werden:
$ mkdir -p hello-world/contents/code
Der Vollständigkeit halber sollte gleich das Verzeichnis **ui** unter ''contents'' hinzugefügt werden. In diesem Verzeichnis kann später die Konfiguration des User-Interface definiert werden.
$ mkdir -p hello-world/contents/ui
In dieser Verzeichnisstruktur müssen zumindest die beiden folgenden Dateien angelegt werden, deren Funktion und Inhalt noch weiter unten erläutert wird:
* **metadata.desktop** direkt im Hauptverzeichnis
* **main.py** im Unterverzeichnis ''code''
===== metadata.desktop =====
Die Datei ''metadata.desktop'' enthält alle Informationen über das Plasmoid. Sowohl Informationen welche Module von Python benötigt werden, als auch Name und Zweck des Plasmoids sind darin enthalten.
Der Inhalt von ''metadata.desktop'' für das Beispiel sieht wie folgt aus:
[Desktop Entry]
Encoding=UTF-8
Name=Hello World
Name[de]=Hallo Welt
Type=Service
ServiceTypes=Plasma/Applet
Icon=pattern-network
X-Plasma-API=python
X-Plasma-MainScript=code/main.py
X-KDE-PluginInfo-Author=Michael Mayer
X-KDE-PluginInfo-Email=techwiki@kuhbox.net
X-KDE-PluginInfo-Name=hello-world
X-KDE-PluginInfo-Version=1.0
X-KDE-PluginInfo-Website=http://techwiki.kuhbox.net/
X-KDE-PluginInfo-Category=Examples
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=GPL
X-KDE-PluginInfo-EnabledByDefault=true
Eine detailierte Erklärung zum Inhalt der Datei gibt es [[http://techbase.kde.org/Development/Tutorials/Plasma/Python/GettingStarted | hier]]
===== main.py =====
In ''main.py'' steht nun der Python-Quellcode der die Funktion des Plasmoids bestimmt. Diese Datei liegt im Unterverzeichnis ''code''.
Hier wiederum der Quellcode für das Beispiel **Hallo-Welt**:
# -*- coding: utf-8 -*-
# Autor: Michael Mayer
# Lizenz: GPL v2
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyKDE4.plasma import Plasma
from PyKDE4 import plasmascript
class HelloWorld(plasmascript.Applet):
def __init__(self,parent,args=None):
plasmascript.Applet.__init__(self,parent)
def init(self):
self.setHasConfigurationInterface(False)
self.resize(150, 120)
def paintInterface(self, painter, option, rect):
painter.save()
painter.setPen(Qt.white)
painter.drawText(rect, Qt.AlignVCenter | Qt.AlignHCenter, "Hello World!")
painter.restore()
def CreateApplet(parent):
return HelloWorld(parent)
Auch zu diesem Programm gibt es [[http://techbase.kde.org/Development/Tutorials/Plasma/Python/GettingStarted | hier]] wieder eine genauere Erklärung.
===== Paketerstellung =====
Damit ist das erste Plasmoid bereits fast fertig. Es muss nur mehr ein Paket erzeugt werden, das direkt installiert werden kann. Das Paket ist eine einfache **zip-Datei** welche die gesamte Verzeichnisstruktur des Plasmoids, ausgehend von dem Verzeichnis in dem die Datei ''metadata.desktop'' liegt (Hauptverzeichnis), abwärts enthält.
Das Paket kann mit dem Befehl
$ zip -r ../.zip .
direkt **aus dem Hauptverzeichnis** heraus erstellt werden. Um das Plasmoid in KDE verfügbar zu machen reicht dann der Befehl:
$ plasmapkg -i ../.zip
Ebenso kann das Plasmoid mit einem Befehl wieder entfernt werden:
$ plasmapkg -r
Nach der Installation kann das Plasmoid zur Arbeitsfläche hinzugefügt und verwendet werden.
===== Fehlersuche =====
Mit der Fehlersuche bei Plasmoids beschäftigt sich ein eigener [[Plasmoid - Fehlersuche | Artikel]].
===== Siehe auch =====
* Artikel zur Konfiguration von [[:Linux:openSuSE:openSuSE]]
* [[http://www.kde-look.org | Herunterladen von Erweiterungen uns Styles für KDE]]
* [[http://techbase.kde.org/Development/Tutorials/Plasma | KDE-Techbase für Plasma]]
* [[Plasmoid - Fehlersuche | Fehlersuche bei Plasmoids]]
{{tag>linux kde4 opensuse plasmoid}}