web-dev-qa-db-ja.com

ダイアログにキャンセルボタンを表示しない

私はKubuntu 18.04を以下で使用しています:

$ zenity --version
3.28.1

--listダイアログを完全に表示したいのですが、[キャンセル]ボタンを表示したくありません(実際に[OK]がなくても大丈夫です)。 --no-cancelオプションを使用すると簡単です。

$ zenity --list --no-cancel
--no-cancel is not supported for this dialog

出力は、zenityがオプションについて知っているが、私にそれを使用させたくないことを示しているようです。

テーブルのデータのみをユーザーに表示したい。選択/編集したり、結果を取得したりする必要はありません。

別の方法はありますか?または、zenityは単にこれを行うことができないのですか?

8
Bakuriu

はい、zenityはかなり制限されています。幸いなことに、ギャップを埋めるフォークが利用可能です:yad –「Yet Another Dialog」(Sudo apt install yad)。これはzenityと同じ構文を使用しますが、ダイアログウィンドウのボタンを明示的に定義する--buttonなどの便利なオプションを追加します。

yad --list --button=OK:0

これにより、「OK」ボタンのみのリストウィンドウが表示され、終了コード0が返されます。

マンページの1つからヒントを得た簡単な例を次に示します。

yad --list --button=OK:0 --checklist --column "Buy" --column "Item" \
  TRUE Apples TRUE Oranges FALSE Pears FALSE Toothpaste

yad usage example

この状態で「OK」をクリックすると、プログラムは0終了コードを返し、チェックされたオプションをstdoutに出力します。

TRUE|Apples|
TRUE|Oranges|

参考文献

8
dessert

Zenityキャンセルボタンのラベルを変更

ボタンのラベルを変更することはできますが、削除することはできません。

$ zenity --list --cancel-label="Go Back" --column="Column 1"

あなたに与えるでしょう:

zenity cancel relabel.png


YAD(まだ別のダイアログ)

yadzenityのどちらでも、bashスクリプトまたはシェルコマンドラインからGUIダイアログボックスを使用できます。 Yadはすべての部門でZenityを上回っています。

Sudo apt install yad

すべてのディストリビューションで機能します。


Yadプログレスバー

yad progress bars.png

Zendが1のみを提供するyadで複数のプログレスバーを定義できます。スクロールテキストを含めることもできます。


Yadボタン

yad buttons.png

任意のボタンに任意のテキストを割り当てることができます。また、ウィンドウアイコンを含めることもできます。


Yadテキスト入力

yad text entry.png

Yadは、変更するテキストを表示します。 Zenityは既存のテキストを表示できません。新しいテキストのみ入力できます。


Yadサポート

Yadの作者と他の多くの貢献者が google groups であなたの質問に答えます。高度な機能について4〜5つの質問を投稿しましたが、通常24時間以内に回答が得られます。言うまでもなく、機能強化は同じチャネルを通じて提供されます。

7