web-dev-qa-db-fra.com

Évitez d'afficher le bouton Annuler dans la boîte de dialogue

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?

8
Bakuriu

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.

Exemple

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

yad usage example

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|

Lectures complémentaires

8
dessert

Relabel Zenity Cancel button

Vous pouvez renommer le bouton mais vous ne pouvez pas le supprimer:

$ zenity --list --cancel-label="Go Back" --column="Column 1"

Te donnera:

zenity cancel relabel.png


YAD (Yet Another Dialog)

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.


Barres de progression Yad

yad progress bars.png

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.


Boutons Yad

yad buttons.png

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.


Entrée de texte Yad

yad text entry.png

Yad affiche du texte à modifier. Zenity ne peut pas afficher le texte existant, vous pouvez uniquement saisir un nouveau texte.


Prise en charge de Yad

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.

7
WinEunuuchs2Unix