Tôi thường xuyên lên các diễn đàn ở đất nước mình rất nhiều… và thành thật mà nói, rất hiếm khi tìm thấy điều gì đó thú vị. Tuy nhiên, tại một trong những diễn đàn đó, có một người dùng đã thực hiện hai bài đăng thú vị về Linux, và đây là bài đầu tiên (mà tôi muốn chia sẻ với bạn):
Sử dụng thực tế của hộp thoại Zenity
Zenity là một tập hợp các hộp thoại đồ họa mà thư viện gtk sử dụng, với chương trình này, chúng tôi có thể nhập dữ liệu, chọn danh sách các tác vụ, hiển thị cho chúng tôi thông tin thu được từ một quy trình nhất định, cho phép chúng tôi thực hiện gián đoạn trước hoặc trong một quy trình nhất định, trong số những chức năng khác.
Zenity bao gồm khoảng 13 hộp thoại đồ họa, hãy xem đây là những gì và các kết hợp có thể có của chúng:
1- Để hiển thị cho chúng tôi lịch và chọn một ngày mong muốn (ngày này sẽ được hiển thị ở định dạng số sau khi được chọn):
zenity --calendar
2- Để nhập văn bản (rất hữu ích khi yêu cầu dữ liệu hoặc tên của tệp)
zenity --entry
Kết hợp chúng một cách chính xác để nó yêu cầu chúng tôi nhập dữ liệu
zenity --entry --text "Escriba el nombre del archivo"
3- Để thông báo cho chúng tôi rằng đã xảy ra lỗi
zenity --error --text "Imposible continuar"
4- Để chọn một tệp
zenity --file-selection $HOME
Thêm tùy chọn này cho phép chúng tôi chọn một số tệp:
--multiple
Với điều này, bạn sẽ chỉ chọn các thư mục
--directory
Với điều này thay vì chọn, chúng tôi sẽ kích hoạt tùy chọn lưu
--save
Với điều này, chúng tôi sẽ ngăn một tệp hiện có bị ghi đè:
--confirm-overwrite
5- Cho chúng tôi xem một số thông tin
zenity --info *text "Información a mostrar"
6- Cho chúng tôi xem danh sách các tùy chọn và chọn một hoặc một nhóm trong số này:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"
Bây giờ điều gì sẽ xảy ra nếu chúng ta muốn có một danh sách các hành động cho các tệp nhất định, nhưng chúng tôi muốn tên của hành động được thực hiện được hiển thị. Để đạt được điều này, chúng ta phải sử dụng hai tùy chọn này (giá trị –hide-column và * giá trị print-column), nó sẽ giống như sau:
zenity --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "nombre1" "comando1" "nombre2" "comando2"
Nếu chúng ta muốn chọn nhiều hành động cùng một lúc, chúng ta phải thêm hai tùy chọn này
Văn bản sẽ tách chuỗi đã chọn khỏi chuỗi khác (trong trường hợp này, chúng tôi thêm đoạn này »» có nghĩa là một khoảng trắng
--separator=" "
Và tùy chọn cho phép chúng tôi chọn nhiều hành động cùng một lúc
--multiple
7- Hiển thị cho chúng tôi thông báo trong thanh menu
zenity *notification *text "Texto deseado"
8- Cho chúng tôi thấy tiến trình của một quy trình nhất định:
zenity --progress --pulsate
9- Với điều này, nó sẽ hiển thị cho chúng ta một câu hỏi và chúng ta có thể chọn xem chúng ta có muốn tiếp tục quá trình hay không:
zenity --question --text "Desea Continuar"
10- Với điều này, chúng tôi có thể nhận được kết quả của một chuỗi trong bảng điều khiển, chẳng hạn như danh sách tìm kiếm tệp, truy vấn trợ giúp, trong số những thứ khác:
zenity --text-info zenity --help-all | zenity --text-info
11- Điều này có thể thông báo cho chúng tôi rằng quá trình đã bị gián đoạn.
zenity --warning --text "El proceso ha fallado" ls /media/carpeta || zenity --warning --text "No existe el directorio"
12- Với điều này, chúng ta có thể chọn một số nhất định bằng thanh trượt:
zenity --scale
Bằng cách thêm tùy chọn này, chúng tôi có thể xác định giá trị nhỏ nhất:
--value 60 --min-value 60
(tùy chọn –value không bao giờ được nhỏ hơn * min-value)
Với điều này, chúng tôi chọn giá trị lớn nhất
--max-value 100
13- Với điều này, nó sẽ hiển thị cho chúng ta một hộp thoại mà chúng ta có thể chọn một màu mong muốn và lấy màu từ phía bên kia bằng cái gọi là ống nhỏ giọt chọn màu.
zenity --color-selection --show-palette
Sau khi xem những hộp thoại nào có sẵn trong chương trình này, chúng ta hãy xem một số ví dụ thực tế với những điều này:
- Hãy xem cách chúng ta có thể kết hợp hộp thoại nhập văn bản
sử dụng một tập lệnh:
#!/bin/bash
#Darle a una palabra una secuencia de comandos.
archivo="`zenity --entry --text "Escriba el nombre del archivo"`"
#comando para renombrar
mv "$@" "`dirname "$@"`"/"$archivo"
- Hãy xem cách kết hợp hộp thoại số 12 của các thang số:
(Đây là một script đơn giản để giảm chất lượng của hình ảnh jpg và do đó giảm dung lượng nó chiếm trên đĩa của chúng tôi)
#!/bin/bash
#Darle a una palabra una secuencia de comandos.
foto="`zenity --scale --value 80 --min-value 60 --max-value 100`"
#comando para comprimir la imagen
mogrify -compress jpeg -quality "$foto%" "$@"
- Hãy xem một ví dụ khác trong đó chúng ta sẽ sử dụng hộp thoại bộ chọn màu, nơi chúng ta sẽ thêm khung màu mà chúng ta chọn vào ảnh:
#!/bin/bash
#Darle a una palabra una secuencia de comandos.
foto="`zenity --color-selection --show-palette`" marco="`zenity --entry --text "Seleccione el rango deseado 6x6"`"
#comando para agregarle el marco
mogrify -border $marco -bordercolor $foto "$@"
- Hãy xem một ví dụ với hộp thoại thông báo lỗi:
#!/bin/bash
rm "$@" || zenity --error --text "Imposible de eliminar esto es una carpeta"
Như bạn có thể thấy, nếu ai đó cố gắng xóa một thư mục, quá trình này sẽ trả về lỗi để chuỗi tiếp tục nhờ vào các toán tử || này.
- Bây giờ hãy xem chúng ta có thể làm gì với hộp thoại số 6, chọn các hành động mà chúng ta sẽ thực hiện trên một tệp nào đó:
#!/bin/bash
actions="`zenity --multiple --separator="" --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "comprimir un 80%" " -compress jpeg -quality 80%" "Cambiar tamaño a 800x600" " -resize 800x600"`"
#Comando
mogrify$actions "$@"
Lưu ý rằng có một khoảng trống trong hộp lệnh vì nó không cho phép văn bản bắt đầu bằng dấu gạch ngang, do đó dấu phân cách trong trường hợp này phải là null –separator = »».
- Hãy xem một ví dụ khác với hộp thoại tiến trình
#!/bin/bash
#Script para eliminar
zenity --question --text "Desea borrara las imágenes dentro de esta carpeta `basename "$@"`" && find "$@" -name *.jpg -delete | zenity --list --progress * pulsate
... Đây là nó.
Tôi hy vọng tôi có thể mang đến cho bạn nhiều bài viết thú vị hơn.
Liên quan
Điều duy nhất tôi sử dụng sự nhiệt tình là vì winetricks yêu cầu nó hoạt động tốt (ít nhất là trong kiến trúc của tôi) hehehe cảm ơn vì mẹo
Zenity được sử dụng cho một số thủ thuật khác, chẳng hạn như công cụ tìm kiếm Xfce 😀
Cảm ơn bạn, cảm ơn bạn rất nhiều, tốt là bạn đã nói về Gtk + Tôi cũng đã sử dụng zenity tôi vẫn chưa hiểu rõ lắm nhưng sau này với những thông tin bạn đưa ra và với thực tế tôi có thể thấy một công dụng thực tế cho nó.
Chúc mừng.
Này từ Camaguey (Tôi có một bàn phím tiếng Pháp sẽ không cho phép tôi tìm thấy hai pinticos của u… hehehe), bạn có thể giải thích cho tôi biết cái này dùng để làm gì không? Và vâng, tất cả điều này được thực hiện bởi bàn điều khiển? Sẽ rất tốt nếu bạn đăng một số hình ảnh chụp để minh họa cho các ví dụ và theo cách đó, nó sẽ tốt hơn ý bạn muốn nói
Trên thực tế, bài viết này không phải do tôi viết, mà bởi một người dùng trên một diễn đàn của chúng tôi.
Vâng, tất cả điều này được thực hiện bởi bảng điều khiển, và… nó để làm gì? Nó rất đơn giản: "kiến thức."
Một ví dụ về việc sử dụng có thể được đưa ra để thể hiện sự nhiệt tình đối với người có bàn phím tiếng Pháp.
#! /bin/bash
# Un cambiador de teclado
ACTION=`zenity --width=0 --height=260 --list\
--title "Selector de setxkbmap" --text "Elige tu teclado"\
--column "Idioma"\
"Español"\
"Francés"\
"Inglés"\
"Gringo"\
"Alemán"`
if [ -n "${ACTION}" ]; then
case $ACTION in
Español)
setxkbmap es && zenity --info --text "Teclado configurado correctamente a español" || zenity --info --text "Por alguna razón no fue posible cambiar el mapa de teclado."
;;
Francés)
setxkbmap fr && zenity --info --text "Dicho sea en francés: Teclado configurado correctamente a francés" || zenity --info --text "Por alguna razón no fue posible cambiar el mapa de teclado."
;;
Inglés)
setxkbmap gb && zenity --info --text "Dicho sea en inglés: Teclado configurado correctamente a inglés" || zenity --info --text "Por alguna razón no fue posible cambiar el mapa de teclado."
;;
Gringo)
setxkbmap us && zenity --info --text "Dicho sea en Gringo: Teclado configurado correctamente a Gringo" || zenity --info --text "Por alguna razón no fue posible cambiar el mapa de teclado."
;;
Alemán)
setxkbmap de && zenity --info --text "Dicho sea en alemán: Teclado configurado correctamente a alemán" || zenity --info --text "Por alguna razón no fue posible cambiar el mapa de teclado."
;;
esac
fi
Ồ, thật đáng xấu hổ. Việc sao chép và dán trực tiếp không hoạt động vì khi nó trở thành một nhận xét, nó "không tôn trọng" dòng ngắt sau mỗi dấu gạch chéo ngược "\".
Để làm cho nó hoạt động, bạn phải thay đổi dấu gạch chéo ngược theo sau bằng dấu ngắt dòng cho một khoảng trắng đơn giản.
Tôi không sao chép nó một lần nữa để không làm bão hòa các nhận xét, nhưng để rõ ràng, từ dòng thứ ba đến dòng thứ tám, bao gồm cả hai, nó phải nằm trong một dòng sao cho:
ACTION = `zenity –width = 0 –height = 260 –list –title« Bộ chọn setxkbmap »–title« Chọn bàn phím của bạn »–cột« Ngôn ngữ »« Tiếng Tây Ban Nha »« Tiếng Pháp »« Tiếng Anh »« Gringo »« Tiếng Đức »
Nếu bạn muốn chia sẻ mã trong các nhận xét, bạn có thể lưu nó trong Dán và dán url vào bình luận của bạn. 🙂
Công cụ tuyệt vời. Tôi không biết có một điều như vậy trong DesdeLinux.
Lần tới khi nhận xét yêu cầu mã, tôi sẽ sử dụng nó.
Cảm ơn bạn về thông tin. XD
AH ... và nếu bạn thấy rằng tôi đang sử dụng Linux thì đó là vì tôi sử dụng cả hai, nhưng tôi muốn làm quen tốt với Linux
Bài viết rất hay !! Đó là sự nhiệt tình siêu hữu ích.
Tôi sử dụng nó trong một tập lệnh thunar thay đổi kích thước các hình ảnh đã chọn và với một danh sách, tôi cung cấp kích thước của các hình ảnh tiêu chuẩn.
Chúc mừng!
Tôi cần bạn cho tôi biết nơi để tìm Zenity bởi vì tôi đã tìm kiếm và nó không có trong kho tôi có…. Thật hạnh phúc khi tôi sử dụng một repo mà tôi không tự tải xuống… (Cảnh báo: Chế độ châm biếm được phát hiện trong nhận xét này)
Hãy xem bạn nghĩ gì về điều này?
#! / bin / bash
song = $ (zenity –width = 360 –height = 320 –title "Launcher" –file-selection –directory $ HOME)
tìm "$ song" -name * .mp3 | sắp xếp –random-sắp xếp | đầu -n 100 | xargs -d '\ n' mpg123
Tôi vẫn cần cải thiện nó một chút