Zenity ile belgelenmiş birleşik kutu kullanımı nerede?


11

Şans eseri zenity ile bir açılan kutu görüntülemek mümkün olduğunu buldum (test sürümü: 2.32.1). Aşağıdaki koda bakın:

#!/bin/bash
array=(a b c d e)
value=$(zenity --entry --title "Window title" --text "${array[@]}" --text "Insert your choice.")

Sonuç aşağıdaki 3 görüntü ile gösterilmiştir:

resim açıklamasını buraya girin

resim açıklamasını buraya girin

resim açıklamasını buraya girin

Bununla ilgili iki sorum var:

  1. Bu işlevsellik hakkında bir belge var mı? Zenity belgelerinde hiçbir şey bulamadım .

  2. Dizimin ilk değeri neden birleşik giriş kutusunda görünmüyor? Yukarıdaki örnekte, dizim (a b c d e)ve birleşik giriş kutusu yalnızca görüntülenir b c d e.

    Geçici bir çözüm olarak, örneğin dizime bir değer eklerim (0 a b c d e).

Yanıtlar:


5

Dizinin ilk elemanı tarafından yenir --text. Genişlemeden sonra zenitiy hattınız şöyle görünür:

zenity --entry --title "Window title" --text a b c d e --text "Insert your choice."
# Which zenity treats equivalent to
zenity --entry --title "Window title" --text a --text "Insert your choice." b c d e

Metni önce olarak ayarlayın a, ardından "Seçiminizi ekleyin" ile geçersiz kılın. Ve geri kalan argümanlar seçenek haline gelir.

Ne istiyorsun:

zenity --entry --title "Window title" --text "Insert your choice." a b c d e
# Hence:
zenity --entry --title "Window title" --text "Insert your choice." "${array[@]}"

4

Bu aslında belgelenmiştir (belki de soru gönderildiği sırada kontrol edilmemiştir), kılavuzda değil zenity --help-forms :

$ LANG=en_US zenity --help-forms
Usage:
  zenity [OPTION...]

Forms dialog options
  --forms                                           Display forms dialog
  --add-entry=Field name                            Add a new Entry in forms dialog
  --add-password=Field name                         Add a new Password Entry in forms dialog
  --add-calendar=Calendar field name                Add a new Calendar in forms dialog
  --add-list=List field and header name             Add a new List in forms dialog
  --list-values=List of values separated by |       List of values for List
  --column-values=List of values separated by |     List of values for columns
  --add-combo=Combo box field name                  Add a new combo box in forms dialog
  --combo-values=List of values separated by |      List of values for combo box
  --show-header                                     Show the columns header
  --text=TEXT                                       Set the dialog text
  --separator=SEPARATOR                             Set output separator character
  --forms-date-format=PATTERN                       Set the format for the returned date

Bu nedenle:

zenity --forms --title "Window title" --text "Combo name" --add-combo "Insert your choice." --combo-values "a|b|c|d|e"

3

--text-entryDeğerler dizisi için kullanmak istediğinizi düşünüyorum --text( değil referans ). Kullanımı:

#!/bin/bash
array=(a b c d e)
value=$(zenity --entry --title "Window title" --entry-text "${array[@]}" --text "Insert your choice.")

Dizinin ilk değeri ve kullanılabilir tüm değerleri önceden doldurulmuş olan açılır kutunun varsayılan değerini görüyorum.


Cevap için teşekkürler. Kılavuzun birleşik giriş kutusuna bakmadığı merak ediliyor.
jep
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.