Jump to content

Zenity: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Fixed the Python example and some formatting.
mNo edit summary
Line 46: Line 46:
if choice:
if choice:
InfoMessage('You pressed YES')
InfoMessage('You pressed Yes!')
else:
else:
ErrorMessage('You pressed NO')
ErrorMessage('You pressed No!')
</source>
</source>
<br />
<br />

Revision as of 16:59, 9 May 2010

Zenity
Original author(s)Sun Microsystems
Developer(s)Glynn Foster
Lucas Rocha
Repository
Operating systemLinux, Windows
LicenseGNU General Public License
Websitehttp://live.gnome.org/Zenity

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

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." [3]

Example

zenity --info --text="This is an information box."

Cross-platform compatibility

At the moment zenity is available for both Linux and Windows[4]. GTK+, the library on which Zenity is based, is also available for MacOS[5]. It therefore should be possible to port Zenity also to this platform.

Zenity does not posses any built-in scripting capabilities and it must therefore rely on an interpreter for processing. If it is desired to create a script that runs on more then any one platform, without heavily modifying it, it will be best to use the same interpreter. One such option is Python in combination with PyZenity[6] as these are available for several platforms.

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!')


Linux bash shell script example

#/bin/bash

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. ^ More fun with Zenity: shell script/GUI interactivity
  2. ^ http://www.linuxjournal.com/content/make-your-scripts-user-friendly-zenity
  3. ^ Tyler, Chris (2006). "Chapter 4. Basic System Management". Fedora Linux. O'Reilly Media, Inc. pp. 258–259. ISBN 978-0-596-52682-5.
  4. ^ http://www.placella.com/software/zenity/
  5. ^ http://gtk-osx.sourceforge.net/
  6. ^ http://www.brianramos.com/?page_id=110