A complete zenity dialog examples
Zenity is a tool that help you to create a common functional GTK+
dialogs. It have various dialogs that each of them have different ways
of presenting data and acquire data from user input.
We have introduce how to make use of GUI dialog box in
Using GUI dialog box
,
where we give an example of how zenity create a question dialog box.
Besides question dialog box, zenity can create more than that, such as
calendar, entry, error, info, file selection, list, notification,
progress, warning, scale and text info. In this tutorial, we would like
to illustrate how to create every single zenity dialog by examples.
How to create zenity calendar dialog?
You are allow to specify the initial selection of date in calendar
dialog, specified with options ?day ?month ?year. The default selection
will be today’s date. Zenity will returns the date selected by user.
szDate=$(zenity --calendar --text "Pick a day" --title "Medical Leave" --day 23 --month 5
--year 2008); echo $szDate
How to create zenity entry dialog?
Entry dialog usually use to acquire string entry from user.
szAnswer=$(zenity --entry --text "where are you?" --entry-text "at home"); echo $szAnswer
How to create zenity error dialog?
Create an error dialog is straight forward, it does not wait for user input.
zenity --error --text "Installation failed! "
How to create zenity info dialog?
zenity --info --text "Join us at irc.freenode.net #lbe."
How to create zenity File Selection dialog?
File selection dialog is one of the a very useful zenity dialog, it
support open file or save file dialog. The best part is, zenity file
selection dialog is not difficult to use. Let me show you how to create
a save file dialog box, if filename already exists, it will ask for
confirmation.
szSavePath=$(zenity --file-selection --save --confirm-overwrite);echo $szSavePath
Check out more and try to create an open file dialog yourself?
zenity --help-file-selection
How to create zenity notification dialog?
To notify users regarding to some status, you can use notification dialog, a tiny icon will be appear at taskbar.
zenity --notification --window-icon=update.png --text "Please update your system."
Next coming up tutorial will covers zenity dialog such as progress, question, warning, scale, text-info and list.
In this post we will covers zenity dialog for progress, question, warning, scale, text info and list.
How to create zenity progress dialog?
Progress dialog is to track a progression of a routine, it can be
anything, let say I want store the results list of open files (lsof)
into a file call lsof.txt, and uses zenity progress to track the
progression, I do this:
gksudo lsof | tee >(zenity --progress --pulsate) >lsof.txt
I need to use tee, because without using tee, zenity will strip off my result output. Check out
tee examples
for more information.
How to create zenity question dialog?
zenity --question --text "Are you sure you want to shutdown?"; echo $?
As echo $? returns result 0 means user press yes, 1 means cancel.
How to create zenity warning dialog?
zenity --warning --text "This will kill, are you sure?";echo $?
How to create zenity scale dialog?
Scale dialog allows you to set a range of number, so that user are force to pick a number within the range.
ans=$(zenity --scale --text "pick a number" --min-value=2 --max-value=100 --value=2
--step 2);echo $ans
How to create zenity text info dialog?
Text Info can be very useful to display text out to a GUI. I use back
the lsof examples, but this time I feed the results to text info box.
gksudo lsof | zenity --text-info --width 530
As you can see, you can specified the width and height of a zenity
dialog. Too bad, text info dialog do not have option to disable text
wrap and specified what font to use.
How to create zenity list dialog?
List dialog is the most flexible dialog and I have spend quite
sometimes to utilize the usage. As it can generate multiple columns,
multiple selection, checklist, radiolist etc. checkout ?help-list for
more information.
This is for radiolist:
ans=$(zenity --list --text "Is linux.byexamples.com helpful?" --radiolist --column "Pick"
--column "Opinion" TRUE Amazing FALSE Average FALSE "Difficult to follow" FALSE "Not helpful");
echo $ans
First you need to define a columns, then feed all the list options one by one.
This is for checklist:
ans=$(zenity --list --text "How linux.byexamples can be improved?" --checklist
--column "Pick" --column "options" TRUE "More pictures" TRUE "More complete post" FALSE "
Includes Installation guidelines" FALSE "Create a forum for question queries"
--separator=":"); echo $ans
The result this time will be long and probably more than one, so you can spefify a separator to differentiate them.
源地址:
http://linux.byexamples.com/archives/259/a-complete-zenity-dialog-examples-1/
http://linux.byexamples.com/archives/265/a-complete-zenity-dialog-examples-2/
.