Scriptomatix ajoute quelques fonctionnalités au langage Qml qui sont disponibles depuis un panneau de paramètres.
- Une classe de lecture/écriture de fichier (binding QFile).
- Une classe de lancement de processus (binding QProcess).
- Une classe de lecture des variables d'environnement (bindings getenv et gethostname).
- Accès aux variables et fonctions internes de scriptomatix.
Lecture/écriture de fichier
Classe : QmlFile 0.1
Propriétés :
- source : string - Nom du fichier
- text : string - Contenu du fichier
Signaux :
- sourceChanged(string) - Émis lorsque le nom de fichier a changé
- textChanged(string) - Émis après une lecture de fichier
Méthodes :
- read()
- write()
- exists()
- setSource(string) - Change le nom du fichier
- setText(string) - Change le contenu du fichier
Exemple :
import QmlFile 0.1
FileIO { id: io }
function writeFile(filename,content) {
io.setSource(filename);
io.setText(content);
io.write();
}
function readFile(filename) {
io.setSource(filename);
if (io.exists()) {
io.read();
return io.text;
} else {
return "";
}
}
voir /usr/share/scriptomatix/examples/Ping-list.qml
Exécution de processus
Classe : QmlProcess 0.1
Propriétés :
- shell : string - Nom du shell
- command : string - Ligne de commande
Signaux :
- shellChanged(string) - Émis lorsque le nom du shell a changé
- commandChanged(string) - Émis lorsque la ligne de commande a changée
- finished(exitcode) - Signal de fin d'exécution du script
- readyReadStandardError() - Données prêtes sur stderr
- readyReadStandardOutput() - Données prêtes sur stdout
- started() - Signal de démarrage de script
Méthodes :
- start() - Démarre le processus
- terminate() - Termine le processus (SIGTERM)
- kill() - Tue le processus (SIGKILL)
- running() - Etat du processus
- readAllStandardError() - Lit toutes les données disponibles sur stderr
- readAllStandardOutput() - Lit toutes les données disponibles sur stdout
- setShell(string) - Change de shell
- setCommand(string) - Change la ligne de commande
Exemple :
import QmlProcess 0.1
Process {
id: myprocess
shell: "/bin/bash"
command: "ls *.txt"
onFinished: mytext.text = myprocess.readAllStandardOutput()
}
Text {
id: mytext
anchors.margins: 5
anchors.fill: parent;
}
Component.onCompleted: {
myprocess.start();
}
Variables d'environnement
Classe : QmlEnvVars 0.1
Méthodes :
- getVar(string name) : string - Retourne la valeur de la variable d'environnement name
- getHostName() : string - Retourne le nom de l'hôte
Exemple :
import QmlEnvVars 0.1
ShellEnv { id: environment }
Text {
id: mytext
anchors.margins: 5
anchors.fill: parent;
text: environment.getVar("HOME")
}
voir /usr/share/scriptomatix/examples/FileInfo.qml
Accès aux variables et fonctions internes de scriptomatix
- sx_scriptargs - Paramètres de la ligne de commande.
- sx_scriptpath - Chemin d'accès au répertoire courant.
- sx_execAction.trigger() - Déclenche l'exécution du script courant.
Exemple :
sx_scriptargs = str; // Set global variable sx_scriptargs
sx_execAction.trigger(); // Trigger script execution
voir /usr/share/scriptomatix/examples/Ping-radio.qml dans la fonction updateParams