Uma lista do Zenity pode exibir uma string '--option'?

4

É possível que um menu no estilo de lista do Zenity mostre uma opção de código como -r ?

Eu estou tentando fazer uma GUI simples para um script bash do FFMPEG. Este é apenas um aviso para selecionar uma taxa de quadros para um vídeo. Eu queria que uma das colunas da lista do Zenity mostrasse a opção real do FFMPEG que seria usada, seria para retornar para ser usada no código do FFMPEG, mas também para ensinar a sintaxe do FFMPEG para o usuário. Assim:

#!/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"

Mas isso dá a mensagem de erro do Zenity:

This option is not available. Please see --help for all possible usages.

Acho que entendo qual é o problema; O Zenity acha que o -r é uma opção do Zenity e não o reconhece.

Basta remover o - antes de o -r corrigir:

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ão mostra erros e exibe corretamente:

A Zenity GUI com as opções acima mencionadas, mas nenhum traço na frente do "r" como em "-r"

Mas é claro que isso não ensinaria a ninguém como usar a opção de taxa de quadros FFMPEG porque o traço é necessário.

Escapar do painel com uma barra invertida como \- apenas imprime a barra invertida também, o que também não ensina ninguém FFMPEG:

A Zenity GUI com as opções acima mencionadas com "-r" na frente delas.

Eu também tentei usar ' e """ e ''' em vez das aspas duplas, mas eles fornecem a mesma mensagem de erro This option is not available... .

Não é possível fazer com que o Zenity exiba algo assim? Eu sei que existem maneiras de contornar o problema se eu quiser apenas que a lista retorne o código (apenas adicionando -r no início da saída), mas como eu disse, gostaria de ensinar um pouco ao usuário da GUI. sobre como usar a interface de linha de comando do FFMPEG. Alguma ideia? Obrigado.

Editar: A propósito, zenity --version no meu sistema (Xubuntu 14.04) retorna 3.8.0 se a versão puder ser parte do problema.

    
por InverseTelecine 02.02.2016 / 21:27

2 respostas

4

Você pode colocar o espaço antes do caractere - , desta forma:

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"
    
por incBrain 02.02.2016 / 21:44
2

Escreva seus dados uma linha por célula em stdin, como

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
    
por Florian Diesch 02.02.2016 / 21:49