Vorbereiten und Laden der Grafik

Inkscape eignet sich hervorragend, um die Vektorgrafik zu bearbeiten – werfen Sie einen Blick auf die Beispielgrafik. Dazu öffnen Sie die Datei television.svg mit Inkscape und betrachten Sie dann im eingebauten XML-Editor, den Sie über Bearbeiten | XML-Editor öffnen (Abbildung 3). Sie sehen, dass einige Elemente über lesbare id-Felder verfügen, die Sie später aus dem Code heraus ansprechen. Sie passen also existierende SVG-Dateien recht einfach an Ihre Bedürfnisse an, indem Sie die Elemente neu anordnen und dem id-Feld des betreffenden Elements einen sinnvollen Namen verpassen.

Abbildung 3: In Inkscape bearbeiten Sie Vektorgrafiken im SVG-Format weiter.

Drade.cpp unter der Lupe

Das Laden der SVG-Datei besorgt im Applet die Methode init() (Listing 2). Dank des Codes lädt Plasma die Vektorgrafik. Da Sie in der Datei CMakeLists.txt angegeben haben, dass diese in das Verzeichnis desktoptheme/default/widgets/ gehört, können Sie sie im Applet-Code über widgets/television wiederfinden und ansprechen. Wie der vordere Teil der Adresse aussieht, hängt vom voreingestellten Pfad der Umgebungsvariable $KDEHOME ab. Weil hinter television die Dateiendung fehlt, lädt Plasma auch komprimierte Vektorgrafiken (.svgz), ohne dass Sie das Applet neu übersetzen müssen.

// drade.cpp, Zeilen 76 bis 80
m_svg = new Plasma::Svg(this);
m_svg->setImagePath("widgets/television");
m_svg->setContainsMultipleImages(false);
m_svg->resize(contentsRect().size());

Im nächsten Schritt bestimmen Sie den Inhaltstyp ("ContentType") für das m_svg-Objekt. Dabei geben Sie zunächst an, dass es sich bei der Grafik um ein einzelnes Bild handelt und nicht um eine Reihe von Bildern (Listing 2, Zeile 4). Über den resize-Parameter (Zeile 5) passen Sie die Grafik der Größe des Inhaltes an.

Das rechenintensive Übersetzen der Vektorgrafik in eine Bitmapgrafik sollten Sie nicht über paintInterface() erledigen, sondern in der Methode init() und über die Funktion constraintsEvent() (Zeilen 93 bis 98 in drade.cpp). Letztere ruft Plasma auf, wenn sich die Größe des Applets ändert. Das passiert, wenn der Benutzer die Größe des Plasmoids über die Applet-Anfasser oder das Panel verändert. Rufen Sie resize() nicht auf, gerät die Grafik körnig oder ungenau.

Die Elemente in der SVG-Datei sprechen Sie mit den Zeilen aus Listing 3 an. Hier zeichnet Plasma ein Element – und damit alle unterliegenden Elemente – ins Applet. Dies geschieht innerhalb der Methode paintInterface(), die den Teil der Grafik in ein vorgegebenes Rechteck zeichnet. Dessen Größe hängt vom darin befindlichen Inhalt ab, was Sie in der Methode resize über contentsRect definiert haben. Um das Positionieren der SVG-Grafiken zu erleichtern, empfiehlt es sich, den darin enthaltenen Elementen gleich große Rechtecke zuzuweisen.

// drade.cpp, Zeilen 229 bis 233
if (m_svg->hasElement("Box")) {
    m_svg->paint(p, contentsRect, "Box");
        } else {
            kDebug() << "Box SVG element is not there. …";
        }

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Erste Plasma-Widgets bereits auf Maemo 5 portiert
    Am Maemo-Summit in Amsterdam verteilte Nokia 300 Internettablets N900 an KDE- und Qt-Entwickler. Jetzt gibt es bereits erste Ports von KDE-Programmen für Maemo 5.
  • KDE 4.11 erhält verbesserten Task-Manager
    Eike Hein hat in einem Blog-Beitrag einen Ausblick auf die überarbeitete Fensterleiste im kommenden KDE 4.11 gegeben. Verbesserungen gab es vor allem beim Layout und der Anordnung der Einträge auf der Leiste.
  • Plasmoiden erstellen mit JavaScript
    Seit Version 4.4 bietet die KDE Software Compilation die Möglichkeit, Plasmoiden in JavaScript oder QtScript zu schreiben. Dadurch eröffnet sich die Welt der KDE-Widgets auch Nicht-Programmierern.
  • Plasmische Chirurgie
    KDE 4 definiert den Desktop um. Was aber steckt hinter Plasma und was sind Plasmoiden? KDE-Entwickler Sebastian Kügler erklärt das neue Desktop-Design.
  • KDE-Miniprogramme mit Plasmate programmieren
    Das KDE-Projekt hat eine erste Alphaversion von Plasmate veröffentlicht. Die kleine Entwicklungsumgebung ist zum Schreiben der Plasmoide genannten Applets für den KDE-4-Desktop gedacht.
Kommentare

Infos zur Publikation

LU 12/2016: Neue Desktops

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Brother Drucker DCP-J4120
Achim Zerrer, 09.12.2016 18:08, 0 Antworten
Hallo, ich wollte unter Leap 42.1 den Brother Drucker installieren und dazu das PPD- Datei vom do...
Drucker Epson XP-332 unter ubuntu 14.04 einrichten
Andrea Wagenblast, 30.11.2016 22:07, 2 Antworten
Hallo, habe vergeblich versucht mein Multifunktionsgerät Epson XP-332 als neuen Drucker unter...
Apricity Gnome unter Win 10 via VirtualBox
André Driesel, 30.11.2016 06:28, 2 Antworten
Halo Leute, ich versuche hier schon seit mehreren Tagen Apricity OS Gnome via VirtualBox zum l...
EYE of Gnome
FRank Schubert, 15.11.2016 20:06, 2 Antworten
Hallo, EOG öffnet Fotos nur in der Größenordnung 4000 × 3000 Pixel. Größere Fotos werden nic...
Kamera mit Notebook koppeln
Karl Spiegel, 12.11.2016 15:02, 2 Antworten
Hi, Fotografen ich werde eine SONY alpha 77ii bekommen, und möchte die LifeView-Möglichkeit nu...