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 02/2016: Alt-PCs flott machen

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

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

Der Tipp der Woche

Schon gewußt?

14.11.2015

Auch unter Ubuntu 15.10 kann man wieder mit dem Startmedienersteller (alias Startup Disk Creator) ein Live-System auf einem USB-Stick einrichten. ...

Fehler des Startmedienerstellers von Ubuntu 15.10 umgehen

Aktuelle Fragen

Tails Update
Val Lerie, 11.01.2016 10:51, 0 Antworten
Hallo zusammen, updaten > update Speichern unter > Persistent nicht möglich, mit der Meldung;...
Recoll
Jürgen Heck, 20.12.2015 18:13, 4 Antworten
Wie kann man mit Recoll nach bestimmten Zeichen/Satzzeichen bzw. Zeichenkombinationen suchen, z....
Wings Platinum 4 auf Linux?
Bodo Steguweit, 18.12.2015 11:37, 4 Antworten
Hallo in die Runde ich nutze für meine Diashows Wings Platinum 4 als Diareferent. Arbeite jetzt...
Bandbreite regulieren
Georg Armani, 25.11.2015 16:50, 1 Antworten
Hallo, ich bin ein Neuling in Sachen Linux und hoffe auf Hilfe. Ich habe zwei Windows Rechner...
Windows 10 verhindert LINUX
Hans Wendel, 17.11.2015 17:47, 7 Antworten
Hallo alle, mit einem W10-Laptop (vorher war Win7) wollte ich LINUX ausprobieren. Alles, was ni...