Jump to content

Zenity

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Gpvos (talk | contribs) at 07:22, 27 June 2015 (-ref). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Zenity
Original author(s)Sun Microsystems
Developer(s)Glynn Foster
Lucas Rocha
Initial release[dubiousdiscuss]
Repository
Operating systemUnix-like
LicenseGNU General Public License
Websitewiki.gnome.org/Projects/Zenity

Zenity is free software and a cross-platform program that allows the execution of GTK+ dialog boxes in command-line and shell scripts.

Description

Like tools such as whiptail and dialog, zenity allows for easy creation of GUIs,[1] though it has fewer features than more complex GUI creation tools.[2]

Other scripting languages such as Perl and Python can be used to construct full-scale GUI applications, but the zenity program enables a shell script to interact with a GUI user.... [The] user interface is not as refined as one that could be provided by a full-featured GUI application, but it is perfectly suitable for simple interactions.

— Chris Tyler[3]

Cross-platform compatibility

As of 2012, Zenity is available for Linux, BSD and Windows.[4] A Zenity port to Mac OS X is available in MacPorts; the homebrew-zenity project has been discontinued.

Zenity does not possess any built-in scripting capabilities and it must, therefore, rely on an interpreter for processing. To create a script that runs on more than one platform without extensive modifications, it would be best to use an interpreter that is available on the widest range of operating systems. One option is Python in combination with the PyZenity library.[5]

Cross-platform script example

from PyZenity import InfoMessage
from PyZenity import Question
from PyZenity import ErrorMessage

choice=Question('Please press a button.')
 
if choice:
    InfoMessage('You pressed Yes!')
else:
    ErrorMessage('You pressed No!')

POSIX shell script example

#!/bin/sh

if zenity --question --text="Please press a button."; then
    zenity --info --text="You pressed Yes\!"
else
    zenity --error --text="You pressed No\!"
fi

Windows example

@echo off
zenity --question --ok-label="Yes" --cancel-label="No" --text="Please press a button."
if %ERRORLEVEL% == 1 goto error
    zenity --info --text="You pressed Yes!"
    goto end
:error
    zenity --error --text="You pressed No!"
:end

See also

References

  1. ^ Cartwright, Ryan (2009-01-30), "More fun with Zenity: shell script/GUI interactivity", Free Software Magazine, retrieved 2011-12-10
  2. ^ Diehl, Mike (2008-05-12), "Make Your Scripts User Friendly with Zenity", LinuxJournal, retrieved 2011-12-10
  3. ^ Tyler, Chris (2006), "Chapter 4. Basic System Management", Fedora Linux, O'Reilly Media, pp. 258–259, ISBN 978-0-596-52682-5
  4. ^ Zenity for Windows, retrieved 2011-12-10
  5. ^ Ramos, Brian (2011-04-20), PyZenity, retrieved 2012-11-15