gdialog não permite entrar ou clicar duas vezes

0

O problema é que eu tive tempos difíceis com gdialog recentemente. Vamos demonstrar o problema primeiro com este exemplo de código bash:

#!/bin/bash
source ./Functionlib

temp1=$(mktemp -t tfile.XXXXXX)
while [ 1 ]
do
gdialog --title "ExampleProgram" --menu "Program Menu" 20 30 10 1 "FirstFunction" 2 "SecondFunction" 3 "ThirdFunction" 4 "Exit" 2> $temp1
if [ $? -eq 1 ]; then
    break
fi
selection=$(cat $temp1)

case $selection in
1) FirstFunction
   ;;
2) SecondFunction
   ;;
3) ThirdFunction
   ;;
4) break
   ;;
*) gdialog --msgbox "Invalid selection" 10 30
esac
done
rm -f $temp1

Então, basicamente tudo funciona bem. Mas ainda há um problema. Quando estou tentando navegar entre as opções e pressiono Enter enquanto está ativo, ele aciona a opção Seleção inválida . Não importa se eu navego pressionando o número certo ou com as teclas de seta. Exatamente o mesmo acontece quando você clica duas vezes. Portanto, apenas a maneira de escolher uma opção parece estar clicando nela primeiro para ativá-la e, em seguida, clique em "OK".

Inicialmente, pensei que deveria haver algo sobre o gdialog que não conheço. Mas eu costumava criar esse tipo de menu com diálogo primeiro. E tudo mencionado acima funcionou perfeitamente. Eu tentei procurar uma resposta em todos os lugares, mas não é dada muita informação sobre gdialog . Ainda assim, descobri que ele usa as mesmas opções que o diálogo .

Então, ainda há algo que eu não conheço? Sim, é bem velho eu sei, mas eu poderia fazer funcionar? Ou devo usar zenity em vez disso?

Sistema atual: Ubuntu 14.04.4 LTS

Versão do kernel: 4.2.0-35-generic

    
por jiipeezz 15.07.2016 / 09:42

0 respostas