コンボボックスの使用法は、どこに記載されていますか?


11

偶然、コンボボックスをZenityで表示できることがわかりました(バージョンテスト:2.32.1)次のコードを参照してください。

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

結果は、次の3つの画像で示されます。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

それについて2つの質問があります。

  1. この機能に関するドキュメントはありますか?私はzenityドキュメントで何も見つけませんでした。

  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

reference--text-entryではなく、値の配列に使用したいと思います。を使用して:--text

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

配列の最初の値が事前に入力されたドロップダウンボックスのデフォルト値と、使用可能なすべての値が表示されます。


答えてくれてありがとう。マニュアルがコンボボックスに言及していないのは不思議です。
イェップ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.