web-dev-qa-db-fra.com

Une liste Zenity peut-elle afficher une chaîne `--option`?

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:

A Zenity GUI with the aforementioned options, but no dash in front of the "r" as in "-r"

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:

A Zenity GUI with the aforementioned options with "-r" in front of them.

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.

3
InverseTelecine

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"
4
incBrain

É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
2
Florian Diesch