Est-il possible d'avoir un menu de style liste Zenity affichant une option de code comme -r
?
J'essaie de créer une interface graphique simple pour un script bash FFMPEG. Ceci est juste une invite pour sélectionner un nombre d'images par seconde pour une vidéo. Je souhaitais que l'une des colonnes de la liste Zenity indique l'option FFMPEG qui serait utilisée, qu'elle soit utilisée pour renvoyer à être utilisée dans le code FFMPEG, mais aussi, si possible, pour enseigner une syntaxe FFMPEG à l'utilisateur. Comme ça:
#!/bin/sh
zenity --list \
--title="Select framerate" \
--column="ffmpeg code" --column="Framerate" --column="Description" \
"-r 24000/1001" "23.976fps" "NTSC compatible 24fps" \
"-r 30000/1001" "29.98fps" "NTSC compatible 30fps"
Mais cela donne le message d'erreur Zenity:
This option is not available. Please see --help for all possible usages.
Je pense que je comprends quel est le problème; Zenity pense que le -r
est une option de Zenity et ne le reconnaît pas.
Il suffit de retirer le -
avant que le -r
le répare:
zenity --list \
--title="Select framerate" \
--column="ffmpeg code" --column="Framerate" --column="Description" \
"r 24000/1001" "23.976fps" "NTSC compatible 24fps" \
"r 30000/1001" "29.98fps" "NTSC compatible 30fps"
N'affiche aucune erreur et affiche correctement:
Mais bien entendu, cela n’apprendrait à personne comment utiliser l’option de framerate de FFMPEG, car le tiret est nécessaire.
Échapper au tiret avec une barre oblique inverse comme \-
imprime aussi la barre oblique inverse, ce qui n’enseignerait également à personne FFMPEG:
J'ai également essayé d'utiliser '
et """
et '''
à la place des guillemets doubles, mais ils donnent le même message d'erreur This option is not available...
.
N'est-il pas possible que Zenity affiche quelque chose comme ça? Je sais que le problème peut être résolu si je veux seulement que la liste retourne le code (en ajoutant simplement -r
au début de la sortie) mais, comme je l'ai dit, j'aimerais pouvoir apprendre à l'utilisateur de l'interface graphique un peu sur l'utilisation de l'interface de ligne de commande FFMPEG. Des idées? Je vous remercie.
Edit: Soit dit en passant, zenity --version
sur mon système (Xubuntu 14.04) renvoie 3.8.0
si la version pourrait faire partie du problème.
Vous pouvez simplement mettre l'espace avant le caractère -
, comme ceci:
zenity --list \
--title="Select framerate" \
--column="ffmpeg code" --column="Framerate" --column="Description" \
" -r 24000/1001" "23.976fps" "NTSC compatible 24fps" \
" -r 30000/1001" "29.98fps" "NTSC compatible 30fps"
Écrivez vos données une ligne par cellule dans stdin, comme
zenity --list \
--title="Select framerate" \
--column="ffmpeg code" --column="Framerate" --column="Description" <<EOF
-r 24000/1001
23.976fps
NTSC compatible 24fps
-r 30000/1001
29.98fps
NTSC compatible 30fps
EOF