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
 

Ä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.
  • 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.
  • 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.
  • 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.
  • 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.
Kommentare

Infos zur Publikation

LU 01/2015: E-Books im Griff

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!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

PCLinuxOS Version 2014.08 "FullMonty" Umstellung auf deutsch
Karl-Heinz Welz, 19.12.2014 09:55, 3 Antworten
Hallo, liebe Community, ich bin 63 Jahre alt und möchte jetzt nach Jahrzehnten Windows zu Linux...
ICEauthority
Thomas Mann, 17.12.2014 14:49, 2 Antworten
Fehlermeldung beim Start von Linux Mint: Could not update ICEauthority file / home/user/.ICEauth...
Linux einrichten
Sigrid Bölke, 10.12.2014 10:46, 5 Antworten
Hallo, liebe Community, bin hier ganz neu,also entschuldigt,wenn ich hier falsch bin. Mein Prob...
Externe USB-Festplatte mit Ext4 formatiert, USB-Stick wird nicht mehr eingebunden
Wimpy *, 02.12.2014 16:31, 0 Antworten
Hallo, ich habe die externe USB-FP, die nur für Daten-Backup benutzt wird, mit dem YaST-Partition...
Steuern mit Linux
Siegfried Markner, 01.12.2014 11:56, 2 Antworten
Welches Linux eignet sich am besten für Steuerungen.