Manuel utilisateur — qt6sermo
1. Introduction
qt6sermo permet de créer des fenêtres Qt6 >= 6.2.0
depuis n'importe quel script shell via une syntaxe XML simple.
export DIALOG='
<window title="Bonjour">
<vbox>
<text><label>Entrez votre nom :</label></text>
<entry><variable>NOM</variable></entry>
<button><label>OK</label><action>EXIT:ok</action></button>
</vbox>
</window>'
qt6sermo --program=DIALOG
# Sortie : NOM="Jean" EXIT="ok"
2. Installation
sudo apt-get install qt6-base-dev qt6-tools-dev flex bison autoconf automake pkg-config g++
cd qt6sermo/
./autogen.sh && ./configure && make -j$(nproc)
sudo make install
qt6sermo --version
3. Modes d'utilisation
| Mode | Commande |
|---|---|
| Variable d'environnement | qt6sermo --program=VAR_ENV |
| Entrée standard | echo '<window>...</window>' | qt6sermo --stdin |
| Fichier XML | qt6sermo --file=ma_fenetre.xml |
4. Syntaxe XML de base
<window title="Titre" width="400" height="300">
<vbox spacing="6">
<text><label>Message</label></text>
<entry>
<variable>MON_TEXTE</variable>
<default>valeur initiale</default>
</entry>
<hbox homogeneous="true">
<button ok></button>
<button cancel></button>
</hbox>
</vbox>
</window>
5. Actions disponibles
| Action | Description |
|---|---|
EXIT:valeur | Quitter le dialogue |
refresh:VAR | Recharger les données d'un widget |
enable:VAR | Activer un widget |
disable:VAR | Désactiver un widget |
show:VAR | Afficher un widget |
hide:VAR | Masquer un widget |
echo $VAR | Commande shell quelconque |
6. Widgets disponibles (33)
<button> <checkbox> <colorbutton> <combobox> <comboboxtext> <edit> <entry> <expander> <fontbutton> <frame> <hbox> <hscale> <hseparator> <list> <menubar> <menuitem> <notebook> <pixmap> <progressbar> <radiobutton> <spinbutton> <statusbar> <table> <terminal> <text> <timer> <togglebutton> <tree> <vbox> <vscale> <vseparator> <window>
7. Variables exportées
À la fermeture, qt6sermo exporte sur stdout toutes les variables déclarées :
NOM="Jean"
AGE="25"
EXIT="ok"
Usage dans un script shell :
eval $(qt6sermo --program=DIALOG)
echo "Bonjour $NOM, vous avez $AGE ans"