J'utilise Kubuntu 18.04 avec:
$ zenity --version
3.28.1
Je veux afficher un --list
dialoguer avec zenity, mais je ne veux pas afficher le bouton Annuler (en fait, je vais bien s'il n'y a pas OK non plus). Cela devrait être facile avec le --no-cancel
option:
$ zenity --list --no-cancel
--no-cancel is not supported for this dialog
La sortie semble indiquer que zenity connaît l'option mais ne veut pas me laisser l'utiliser.
Je veux seulement montrer à l'utilisateur les données dans un tableau. Je me fiche de la sélection/modification ou de l'obtention d'un résultat.
Existe-t-il un autre moyen? Ou zenity
est-il simplement incapable de le faire?
Oui, zenity
est assez limité. Heureusement, une fourchette est disponible pour combler l'écart: yad
- "Yet Another Dialog" (Sudo apt install yad
). Il utilise la même syntaxe que zenity
, mais ajoute une tonne d'options utiles, par exemple --button
pour définir explicitement les boutons de votre fenêtre de dialogue:
yad --list --button=OK:0
Cela affiche une fenêtre de liste avec juste un bouton "OK" renvoyant le code de sortie 0
.
Voici un exemple simple inspiré d'un extrait de la page de manuel:
yad --list --button=OK:0 --checklist --column "Buy" --column "Item" \
TRUE Apples TRUE Oranges FALSE Pears FALSE Toothpaste
Lorsque "OK" est cliqué dans cet état, le programme renvoie un 0
code de sortie et imprime les options cochées sur stdout:
TRUE|Apples|
TRUE|Oranges|
Vous pouvez renommer le bouton mais vous ne pouvez pas le supprimer:
$ zenity --list --cancel-label="Go Back" --column="Column 1"
Te donnera:
yad
et zenity
vous permettent d'utiliser les boîtes de dialogue de l'interface graphique à partir d'un script bash ou de la ligne de commande Shell. Yad surpasse la zénité dans tous les départements:
Sudo apt install yad
Fonctionne dans toutes les distributions.
Vous pouvez définir plusieurs barres de progression dans yad où zenity n'en propose que 1. Vous pouvez également inclure du texte défilant.
Vous pouvez attribuer le texte de votre choix à n'importe quel bouton. Notez également que vous pouvez également inclure une icône de fenêtre.
Yad affiche du texte à modifier. Zenity ne peut pas afficher le texte existant, vous pouvez uniquement saisir un nouveau texte.
L'auteur de Yad et bien d'autres contributeurs répondent à vos questions dans google groups . J'ai publié quatre ou cinq questions sur les fonctionnalités avancées et j'obtiens généralement une réponse dans les 24 heures. Sans parler des améliorations apportées par le même canal.