ज़ेनिटी के साथ कॉम्बो बॉक्स का उपयोग कहां प्रलेखित है?


11

मुझे संयोग से यह पता चला कि ज़ेनिटी के साथ कॉम्बो बॉक्स प्रदर्शित करना संभव था (संस्करण का परीक्षण किया गया: 2.32.1)। निम्नलिखित कोड देखें:

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

परिणाम निम्नलिखित 3 छवियों के साथ चित्रित किया गया है:

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

मेरे पास इसके बारे में दो प्रश्न हैं:

  1. क्या इस कार्यक्षमता के बारे में कोई दस्तावेज है? मुझे जिनी डॉक्यूमेंटेशन में कुछ नहीं मिला ।

  2. मेरे सरणी का पहला मान कॉम्बो बॉक्स में क्यों नहीं दिखाई देता है? ऊपर दिए गए उदाहरण में, मेरा सरणी है (a b c d e), और कॉम्बो बॉक्स केवल प्रदर्शित करता है b c d e

    वर्कअराउंड के रूप में, मैं अपने सरणी में एक मूल्य जोड़ता हूं, उदाहरण के लिए (0 a b c d e)

जवाबों:


5

सरणी का पहला तत्व द्वारा खाया जाता है --text। विस्तार के बाद, आपकी ज़ेनिटी लाइन इस तरह दिखती है:

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

इसलिए आप पहले पाठ को सेट करते हैं a, फिर आप "अपनी पसंद सम्मिलित करें" से ओवरराइड करते हैं। और शेष तर्क विकल्प बन जाते हैं।

आप क्या चाहते हैं:

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

यह वास्तव में प्रलेखित है (शायद सवाल पोस्ट किए जाने के समय नहीं, जाँच नहीं किया गया था), मैनुअल में नहीं बल्कि इसमें 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

इसलिए:

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

3

मुझे लगता है कि आप --text-entryमूल्यों की सरणी के लिए उपयोग करना चाहते हैं, न कि --text( संदर्भ )। का उपयोग करते हुए:

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

मुझे सरणी के पहले मूल्य से पहले ड्रॉपडाउन बॉक्स का डिफ़ॉल्ट मान और उपलब्ध सभी मान दिखाई देते हैं।


जवाब के लिए धन्यवाद। यह उत्सुक है कि मैनुअल कॉम्बो बॉक्स को संदर्भित नहीं करता है।
जफ 5'11
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.