(→Package Structure) |
(→Plasma Widgets in QML) |
||
| Line 69: | Line 69: | ||
== Plasma Widgets in QML == | == Plasma Widgets in QML == | ||
To use plasma widgets, you simply add an import line for them. | To use plasma widgets, you simply add an import line for them. | ||
| + | All properties, signals and slots from ordinary Plasma widgets are available there | ||
<code javascript> | <code javascript> | ||
Contents |
Writing a plasma applet in QML is very easy, in fact, with KDE 4.6 and Qt 4.7 it just works.
You create a .desktop file and the .qml file. They have to be in the usual plasma package structure.
plasmoid-qml/metadata.desktop plasmoid-qml/contents/ui/main.qml
[Desktop Entry]
Name=Hello QML
Comment=A hello world widget in QML
Icon=chronometer
X-Plasma-API=declarativeappletscript X-Plasma-MainScript=ui/main.qml X-Plasma-DefaultSize=200,100
X-KDE-PluginInfo-Author=Frederik Gladhorn X-KDE-PluginInfo-Email=gladhorn@kde.org X-KDE-PluginInfo-Website=http://plasma.kde.org/ X-KDE-PluginInfo-Category=Examples X-KDE-PluginInfo-Name=org.kde.hello-qml X-KDE-PluginInfo-Version=0.0
X-KDE-PluginInfo-Depends= X-KDE-PluginInfo-License=GPL X-KDE-PluginInfo-EnabledByDefault=true X-KDE-ServiceTypes=Plasma/Applet Type=Service
import Qt 4.7
Text {
text: "Hello world!";
}
You can install your plasmoid: plasmapkg --install plasmoid-qml
You can run it in plasmoidviewer as usual: plasmoidviewer plasmoid-qml
It's possible to use Plasma specific imports in qml files loaded by qmlviewer:
qmlviewer -I /usr/lib/kde4/imports/ plasmoid-qml/contents/qml/main.qml
Where the -I is the path to the plasma plugin for qml. Try to look for the path of /usr/lib/kde4/imports/org/kde/plasma/graphicswidgets/libgraphicswidgetsbindingsplugin.so and use everything up to org of that path.
Hovewer it's strongly discouraged to use qmlviewer to develop plasmoids, because some features won't be available there:
To use plasma widgets, you simply add an import line for them. All properties, signals and slots from ordinary Plasma widgets are available there
import Qt 4.7
import org.kde.plasma.graphicswidgets 0.1 as PlasmaWidgets
Item {
width: 64
height: 64
PlasmaWidgets.IconWidget {
id: icon
Component.onCompleted: setIcon("flag-red")
anchors.centerIn: parent
}
}