ฉันมักจะเปิดฟอรั่มในประเทศของฉันบ่อยมาก…และจริงๆแล้วการหาสิ่งที่น่าสนใจนั้นหายาก อย่างไรก็ตามในหนึ่งในฟอรัมเหล่านั้นมีผู้ใช้คนหนึ่งได้โพสต์ที่น่าสนใจสองครั้งเกี่ยวกับ Linux และนี่เป็นครั้งแรก (ที่ฉันต้องการแบ่งปันกับคุณ)
การใช้กล่องโต้ตอบ Zenity ในทางปฏิบัติ
Zenity คือชุดของกล่องโต้ตอบกราฟิกที่ gtk libraries ใช้ด้วยโปรแกรมนี้เราสามารถป้อนข้อมูลเลือกรายการงานแสดงข้อมูลที่เกิดจากกระบวนการที่กำหนดอนุญาตให้เราหยุดชะงักก่อนหรือระหว่างกระบวนการบางอย่าง ฟังก์ชั่น.
Zenity ประกอบด้วยกล่องโต้ตอบกราฟิกประมาณ 13 กล่องมาดูกันว่าสิ่งเหล่านี้คืออะไรและชุดค่าผสมที่เป็นไปได้:
1- ในการแสดงปฏิทินและเลือกวันที่ที่ต้องการ (วันที่นี้จะแสดงในรูปแบบตัวเลขเมื่อเลือกแล้ว):
zenity --calendar
2- ในการป้อนข้อความ (มีประโยชน์มากเมื่อขอข้อมูลหรือชื่อไฟล์)
zenity --entry
รวมเข้าด้วยกันอย่างถูกต้องเพื่อที่จะขอให้เราป้อนข้อมูล
zenity --entry --text "Escriba el nombre del archivo"
3- เพื่อแจ้งให้เราทราบว่าเกิดข้อผิดพลาด
zenity --error --text "Imposible continuar"
4- เพื่อเลือกไฟล์
zenity --file-selection $HOME
การเพิ่มตัวเลือกนี้ทำให้เราสามารถเลือกไฟล์ต่างๆได้:
--multiple
ด้วยวิธีนี้คุณจะเลือกเฉพาะโฟลเดอร์
--directory
ด้วยวิธีนี้แทนที่จะเลือกเราจะเปิดใช้งานตัวเลือกบันทึก
--save
ด้วยวิธีนี้เราจะป้องกันไม่ให้ไฟล์ที่มีอยู่ถูกเขียนทับ:
--confirm-overwrite
5- แสดงข้อมูลบางอย่าง
zenity --info *text "Información a mostrar"
6- แสดงรายการตัวเลือกและเลือกหนึ่งหรือกลุ่มเหล่านี้:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"
ตอนนี้จะเกิดอะไรขึ้นถ้าเราต้องการมีรายการการดำเนินการสำหรับไฟล์บางไฟล์ แต่เราต้องการให้แสดงชื่อของการดำเนินการ เพื่อให้บรรลุสิ่งนี้เราต้องใช้สองตัวเลือกนี้ (ค่า - ซ่อนคอลัมน์และค่า * คอลัมน์พิมพ์) ซึ่งจะมีลักษณะดังนี้:
zenity --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "nombre1" "comando1" "nombre2" "comando2"
หากเราต้องการเลือกมากกว่าหนึ่งการกระทำในแต่ละครั้งเราต้องเพิ่มสองตัวเลือกนี้
ข้อความที่จะแยกลำดับที่เลือกออกจากลำดับอื่น ๆ (ในกรณีนี้เราเพิ่ม»»ซึ่งหมายถึงช่องว่าง
--separator=" "
และตัวเลือกที่จะช่วยให้เราสามารถเลือกมากกว่าหนึ่งการกระทำในแต่ละครั้ง
--multiple
7- แสดงการแจ้งเตือนในแถบเมนู
zenity *notification *text "Texto deseado"
8- แสดงความคืบหน้าของกระบวนการที่กำหนด:
zenity --progress --pulsate
9- ด้วยสิ่งนี้จะแสดงคำถามให้เราเห็นและเราสามารถเลือกได้ว่าต้องการดำเนินการต่อหรือไม่:
zenity --question --text "Desea Continuar"
10- ด้วยวิธีนี้เราสามารถรับผลลัพธ์ของลำดับในคอนโซลเช่นรายการการค้นหาไฟล์แบบสอบถามความช่วยเหลือและอื่น ๆ :
zenity --text-info zenity --help-all | zenity --text-info
11- สิ่งนี้สามารถแจ้งให้เราทราบว่ากระบวนการหยุดชะงัก
zenity --warning --text "El proceso ha fallado" ls /media/carpeta || zenity --warning --text "No existe el directorio"
12- ด้วยวิธีนี้เราสามารถเลือกหมายเลขที่กำหนดโดยใช้แถบเลื่อน:
zenity --scale
ด้วยการเพิ่มตัวเลือกนี้เราสามารถกำหนดค่าต่ำสุด:
--value 60 --min-value 60
(ตัวเลือก –value ไม่ควรน้อยกว่า * min-value)
ด้วยสิ่งนี้เราจึงเลือกค่าสูงสุด
--max-value 100
13- ด้วยสิ่งนี้จะแสดงกล่องโต้ตอบซึ่งเราสามารถเลือกสีที่ต้องการและนำสีจากอีกด้านหนึ่งด้วยหยดตัวเลือกสีที่เรียกว่า
zenity --color-selection --show-palette
หลังจากดูว่ามีกล่องโต้ตอบใดบ้างในโปรแกรมนี้เรามาดูตัวอย่างที่ใช้ได้จริงดังนี้:
- มาดูกันว่าเราจะผสมกล่องโต้ตอบการป้อนข้อความได้อย่างไร
ใช้สคริปต์:
#!/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"
- มาดูวิธีรวมกล่องโต้ตอบหมายเลข 12 ของมาตราส่วนตัวเลข:
(นี่เป็นสคริปต์ง่ายๆในการลดคุณภาพของภาพ jpg และลดพื้นที่ว่างบนดิสก์ของเรา)
#!/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%" "$@"
- มาดูอีกตัวอย่างหนึ่งที่เราจะใช้กล่องโต้ตอบตัวเลือกสีซึ่งเราจะเพิ่มกรอบของสีที่เราเลือกลงในภาพถ่าย:
#!/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 "$@"
- ลองดูตัวอย่างพร้อมกล่องโต้ตอบข้อความแสดงข้อผิดพลาด:
#!/bin/bash
rm "$@" || zenity --error --text "Imposible de eliminar esto es una carpeta"
ดังที่คุณเห็นหากมีคนพยายามลบโฟลเดอร์กระบวนการจะส่งกลับข้อผิดพลาดดังนั้นห่วงโซ่จึงดำเนินต่อไปด้วยตัวดำเนินการ || เหล่านี้
- มาดูกันว่าเราสามารถทำอะไรได้บ้างกับกล่องโต้ตอบหมายเลข 6 โดยเลือกการกระทำที่เราจะดำเนินการกับไฟล์บางไฟล์:
#!/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 "$@"
โปรดสังเกตว่ามีช่องว่างในกล่องคำสั่งเนื่องจากไม่อนุญาตให้ข้อความขึ้นต้นด้วยยัติภังค์ดังนั้นตัวคั่นในกรณีนี้จึงต้องเป็น null –separator = »»
- ลองดูตัวอย่างอื่นพร้อมกล่องโต้ตอบความคืบหน้า
#!/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
... ก็นี่แหละ
ฉันหวังว่าฉันจะสามารถนำโพสต์ที่น่าสนใจมาให้คุณได้มากขึ้น
ความนับถือ
สิ่งเดียวที่ฉันใช้ zenity เพราะ winetricks ขอให้มันทำงานได้ดี (อย่างน้อยก็ในซุ้มของฉัน) ฮิฮิขอบคุณสำหรับเคล็ดลับ
Zenity ใช้สำหรับเทคนิคอื่น ๆ เช่นเครื่องมือค้นหา Xfce 😀
ขอบคุณมากขอบคุณมากที่คุณพูดถึง Gtk + ฉันยังใช้ zenity ฉันยังไม่เข้าใจดีนัก แต่หลังจากนั้นด้วยข้อมูลที่คุณให้มาและด้วยการฝึกฝนฉันอาจพบว่ามีประโยชน์สำหรับมัน
อาศิรพจน์
เฮ้จาก Camaguey (ฉันมีแป้นพิมพ์ภาษาฝรั่งเศสที่จะไม่ให้ฉันค้นหาสอง pinticos ของคุณ ... ฮิฮิฮิ) คุณช่วยอธิบายได้ดีว่านี่คืออะไรสำหรับฉัน และถ้าทั้งหมดนี้ทำโดยคอนโซล? จะเป็นการดีถ้าคุณโพสต์ภาพแคปเจอร์เพื่อให้ตัวอย่างมีภาพประกอบและวิธีนั้นจะดูดีขึ้นว่าคุณหมายถึงอะไร
อันที่จริงบทความนี้ไม่ได้เขียนโดยฉัน แต่โดยผู้ใช้ฟอรัมแห่งหนึ่งของเรา
ใช่ทั้งหมดนี้ทำโดยคอนโซลและ ... มีไว้เพื่ออะไร? มันง่ายมาก: "ความรู้"
ตัวอย่างการใช้งานที่สามารถมอบให้กับ zenity สำหรับผู้ที่ใช้แป้นพิมพ์ภาษาฝรั่งเศส
#! /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
โอ้ช่างน่าเสียดาย การคัดลอกและวางโดยตรงไม่ได้ผลเพราะเมื่อมันกลายเป็นความคิดเห็นจะเป็นการ "ดูหมิ่น" เส้นแบ่งหลังแบ็กสแลช "\"
เพื่อให้ใช้งานได้คุณต้องเปลี่ยนแบ็กสแลชตามด้วยตัวแบ่งบรรทัดเพื่อเว้นวรรคง่ายๆ
ฉันไม่คัดลอกอีกครั้งเพื่อไม่ให้ความคิดเห็นอิ่มตัว แต่เพื่อให้ชัดเจนตั้งแต่บรรทัดที่สามถึงบรรทัดที่แปดรวมทั้งสองอย่างควรอยู่ในบรรทัดเดียวเพื่อ:
ACTION = `zenity –width = 0 –height = 260 –list –title « Setxkbmap selector » –text «เลือกแป้นพิมพ์» –column « Language »« Spanish »« French »« English »« Gringo »« German »`
หากคุณต้องการแบ่งปันรหัสในความคิดเห็นคุณสามารถบันทึกไว้ในไฟล์ พาสต้า และวาง url ในความคิดเห็นของคุณ 🙂
เครื่องมือที่ยอดเยี่ยม ฉันไม่รู้ว่ามีเรื่องแบบนี้อยู่ในนั้น DesdeLinux.
ครั้งต่อไปที่ความคิดเห็นต้องใช้รหัสฉันจะใช้มัน
ขอบคุณสำหรับข้อมูล. XD
AH ... และถ้าคุณเห็นว่าฉันใช้ Linux นั่นเป็นเพราะฉันใช้ทั้งสองอย่าง แต่ฉันสนใจที่จะใช้งาน Linux ได้ดี
บทความดีมาก !! มันมีประโยชน์มาก
ฉันใช้มันในสคริปต์ thunar ที่ปรับขนาดรูปภาพที่เลือกและด้วยรายการฉันเสนอขนาดของรูปภาพมาตรฐาน
ทักทาย!
ฉันต้องการให้คุณบอกฉันว่าจะหา Zenity ได้ที่ไหนเพราะฉันกำลังมองหาอยู่แล้วและมันไม่ได้อยู่ใน repo ที่ฉันมี ... ฉันมีความสุขแค่ไหนที่ใช้ repo ที่ฉันไม่ได้ดาวน์โหลดเอง… (การแจ้งเตือน: ตรวจพบโหมดประชดประชันในความคิดเห็นนี้)
มาดูกันว่าคุณคิดอย่างไรกับเรื่องนี้?
#! / bin / ทุบตี
เพลง = $ (zenity –width = 360 –height = 320 –title "Launcher" –file-selection –directory $ HOME)
หา "$ song" - ชื่อ * .mp3 | เรียง - สุ่มเรียง | หัว -n 100 | xargs -d '\ n' mpg123
ฉันยังคงต้องปรับปรุงมันเล็กน้อย