Penggunaan praktikal kotak dialog Zenity

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


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   Reput87 kata

    Satu-satunya perkara yang saya gunakan adalah kerana winetricks meminta ia berfungsi dengan baik (sekurang-kurangnya di lengkungan saya) hehehe terima kasih atas tipnya

  2.   elav <° Linux kata

    Zenity digunakan untuk beberapa muslihat lain, seperti enjin carian Xfce 😀

  3.   Aaron Mendo kata

    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.

  4.   Neo61 kata

    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

    1.    KZKG ^ Gaara kata

      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."

    2.    manolox kata

      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

      1.    manolox kata

        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 »"

        1.    Manual Sumber kata

          Sekiranya anda ingin berkongsi kod dalam komen anda boleh menyimpannya di Inti dan tampal url di komen anda. 🙂

          1.    manolox kata

            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

  5.   Neo61 kata

    AH ... dan jika anda melihat bahawa saya menggunakan Linux, ini kerana saya menggunakan kedua-duanya, tetapi saya berminat untuk masuk ke Linux

  6.   Santiago kata

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

  7.   Hyuuga_Neji kata

    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)

  8.   Jualan Jose kata

    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