Saya sering mengadakan forum di negara saya ... dan sejujurnya, jarang sekali menemui sesuatu yang menarik. Namun, di salah satu forum tersebut, ada pengguna yang telah membuat dua catatan menarik mengenai Linux, dan ini adalah yang pertama (yang ingin saya kongsikan kepada anda):
Penggunaan praktikal kotak dialog Zenity
Zenity adalah sekumpulan kotak dialog grafik yang digunakan perpustakaan gtk, dengan program ini kita dapat memasukkan data, memilih senarai tugas, menunjukkan kepada kita maklumat yang dihasilkan dari proses tertentu, memungkinkan kita membuat gangguan sebelum atau semasa proses tertentu, antara lain fungsi.
Zenity terdiri daripada sekitar 13 kotak dialog grafik, mari kita lihat apakah ini dan kemungkinan kombinasi mereka:
1- Untuk menunjukkan kalendar dan memilih tarikh yang dikehendaki (tarikh ini akan ditunjukkan dalam format berangka setelah dipilih):
zenity --calendar
2- Untuk memasukkan teks (sangat berguna ketika meminta data atau nama fail)
zenity --entry
Gabungkannya dengan betul sehingga meminta kami memasukkan data
zenity --entry --text "Escriba el nombre del archivo"
3- Untuk memberitahu bahawa ralat telah berlaku
zenity --error --text "Imposible continuar"
4- Untuk memilih fail
zenity --file-selection $HOME
Menambah pilihan ini membolehkan kita memilih beberapa fail:
--multiple
Dengan ini anda hanya akan memilih folder
--directory
Dengan ini bukannya memilih kita akan mengaktifkan pilihan simpan
--save
Dengan ini kami akan mengelakkan fail yang ada ditimpa:
--confirm-overwrite
5- Tunjukkan maklumat tertentu kepada kami
zenity --info *text "Información a mostrar"
6- Tunjukkan kepada kami senarai pilihan dan pilih satu atau kumpulan berikut:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"
Sekarang apa yang berlaku jika kita ingin mempunyai senarai tindakan untuk fail tertentu, tetapi kita mahu nama tindakan yang akan dilakukan ditampilkan. Untuk mencapainya, kita harus menggunakan dua pilihan ini (nilai lindung-lajur dan * nilai lajur cetak) akan kelihatan seperti ini:
zenity --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "nombre1" "comando1" "nombre2" "comando2"
Sekiranya kita ingin memilih lebih dari satu tindakan pada satu masa, kita mesti menambah dua pilihan ini
Teks yang akan memisahkan urutan yang dipilih dari yang lain (dalam hal ini kita tambahkan ini »» yang bermaksud ruang
--separator=" "
Dan pilihan yang akan membolehkan kita memilih lebih dari satu tindakan pada satu masa
--multiple
7- Tunjukkan pemberitahuan kepada kami di bar menu
zenity *notification *text "Texto deseado"
8- Tunjukkan kepada kami kemajuan proses tertentu:
zenity --progress --pulsate
9- Dengan ini, ia akan menunjukkan kepada kita satu soalan dan kita boleh memilih sama ada mahu meneruskan proses ini atau tidak:
zenity --question --text "Desea Continuar"
10- Dengan ini kita dapat menerima hasil urutan di konsol seperti senarai carian fail, pertanyaan bantuan, antara lain:
zenity --text-info zenity --help-all | zenity --text-info
11- Ini dapat memberitahu kami bahawa proses telah terganggu.
zenity --warning --text "El proceso ha fallado" ls /media/carpeta || zenity --warning --text "No existe el directorio"
12- Dengan ini kita dapat memilih nombor tertentu dengan menggunakan bar gelangsar:
zenity --scale
Dengan menambahkan pilihan ini, kita dapat menentukan nilai minimum:
--value 60 --min-value 60
(pilihan –value tidak boleh kurang dari * nilai min)
Dengan ini kita memilih nilai maksimum
--max-value 100
13- Dengan ini ia akan menunjukkan kepada kita kotak dialog dengan mana kita dapat memilih warna yang diinginkan dan mengambil warna dari sisi lain dengan apa yang disebut pemilih warna.
zenity --color-selection --show-palette
Setelah melihat kotak dialog mana yang tersedia dalam program ini, mari kita lihat beberapa contoh praktikal dengan ini:
- Mari lihat bagaimana kita boleh mencampurkan kotak dialog input teks
menggunakan skrip:
#!/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"
- Mari lihat bagaimana menggabungkan kotak dialog nombor 12 skala berangka:
(Ini adalah skrip sederhana untuk menurunkan kualiti gambar jpg dan dengan itu mengurangkan ruang yang ditempati pada cakera kami)
#!/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%" "$@"
- Mari kita lihat contoh lain di mana kita akan menggunakan kotak dialog pemilih warna di mana kita akan menambah bingkai warna yang kita pilih pada 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 "$@"
- Mari lihat contoh dengan kotak dialog mesej ralat:
#!/bin/bash
rm "$@" || zenity --error --text "Imposible de eliminar esto es una carpeta"
Seperti yang anda lihat, jika seseorang cuba memadam folder, proses mengembalikan ralat sehingga rantai itu berterusan terima kasih kepada operator || ini.
- Mari lihat sekarang apa yang dapat kita lakukan dengan kotak dialog nombor 6, memilih tindakan yang akan kita lakukan pada fail tertentu:
#!/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 "$@"
Perhatikan bahawa terdapat ruang dalam kotak perintah kerana tidak membenarkan teks dimulakan dengan tanda hubung, oleh itu pembatas dalam kes ini harus kosong - pemisah = »».
- Mari kita lihat contoh lain dengan kotak dialog kemajuan
#!/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
... Ini dia.
Saya harap saya dapat membawa anda lebih banyak catatan yang menarik.
salam
Satu-satunya perkara yang saya gunakan adalah kerana winetricks meminta ia berfungsi dengan baik (sekurang-kurangnya di lengkungan saya) hehehe terima kasih atas tipnya
Zenity digunakan untuk beberapa muslihat lain, seperti enjin carian Xfce 😀
Terima kasih, terima kasih banyak, bagus kerana anda bercakap tentang Gtk + Saya juga telah menggunakan kegilaan saya masih tidak memahaminya dengan baik tetapi kemudian dengan maklumat yang anda berikan dan dengan latihan, saya mungkin dapat menggunakan praktikal untuknya.
Greetings.
Hai dari Camaguey (Saya mempunyai papan kekunci bahasa Perancis yang tidak akan membiarkan saya mencari dua pinto u ... hehehe), bolehkah anda menerangkan dengan baik apa ini untuk saya? Dan jika semua ini dilakukan oleh konsol? Akan lebih baik jika anda menyiarkan beberapa gambar tangkapan sehingga contohnya digambarkan dan dengan cara itu kelihatan lebih baik maksud anda
Sebenarnya, artikel ini bukan ditulis oleh saya, tetapi oleh pengguna salah satu forum kami.
Ya, semua ini dilakukan oleh konsol, dan ... untuk apa? Ia sangat mudah: "pengetahuan."
Contoh penggunaan yang boleh diberikan kepada seseorang yang mempunyai papan kekunci Perancis.
#! /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
Oh, sungguh memalukan. Menyalin dan menampal secara langsung tidak berfungsi kerana apabila menjadi komen, ia "tidak menghormati" garis putus setelah setiap garis miring terbalik "\".
Agar berjaya, anda harus menukar garis miring terbalik diikuti dengan penembusan garis untuk ruang yang sederhana.
Saya tidak menyalinnya lagi agar tidak memenuhi komen, tetapi jelas, dari baris ketiga hingga kedelapan, keduanya inklusif, ia harus dalam satu baris sehingga:
TINDAKAN = `zenity –width = 0 –height = 260 –list –title« Setxkbmap selector »–text« Pilih papan kekunci anda »–kolom« Bahasa »« Sepanyol »« Perancis »« Inggeris »« Gringo »« Jerman »"
Sekiranya anda ingin berkongsi kod dalam komen anda boleh menyimpannya di Inti dan tampal url di komen anda. 🙂
Excelente herramienta. No sabía que existía tal cosa en DesdeLinux.
Kali berikutnya komen memerlukan kod, saya akan menggunakannya.
Terima kasih atas maklumat. XD
AH ... dan jika anda melihat bahawa saya menggunakan Linux, ini kerana saya menggunakan kedua-duanya, tetapi saya berminat untuk masuk ke Linux
Artikel yang sangat bagus !! Ini adalah kegembiraan yang sangat berguna.
Saya menggunakannya dalam skrip thunar yang mengubah ukuran gambar yang dipilih, dan dengan senarai saya menawarkan ukuran gambar standard.
Salam !!
Saya memerlukan anda untuk memberitahu saya di mana untuk mencari Zenity itu kerana saya sudah mencari dan tidak ada di repo yang saya ada…. Betapa senangnya saya menggunakan repo yang tidak saya muat turun sendiri ... (Makluman: Mod sarkastik dikesan dalam komen ini)
Mari lihat apa pendapat anda mengenai perkara ini?
#! / Bin / Bash
lagu = $ (zenity –width = 360 –tinggi = 320 –title "Launcher" –file-selection –direktori $ HOME)
cari "$ song" -nama * .mp3 | urutkan –rawak-urut | kepala -n 100 | xargs -d '\ n' mpg123
Saya masih perlu memperbaikinya sedikit