Я использую Kubuntu 18.04 с:
$ zenity --version
3.28.1
Я хочу отобразить a --list
диалоговое окно с zenity, но я не хочу показывать Кнопку отмены (на самом деле, я хорошо, если нет никакого OK ни одного). Это должно быть легко с --no-cancel
опция:
$ zenity --list --no-cancel
--no-cancel is not supported for this dialog
Вывод, кажется, указывает, что zenity знает об опции, но не хочет позволять мне использовать ее.
Я только хочу показать пользователю данные в таблице. Я не забочусь о выборе/редактировании или возвращении результата.
Есть ли какой-либо альтернативный путь? Или zenity
просто не мог сделать это?
Да, zenity
довольно ограничен. К счастью существует ветвление, доступное, который заполняет разрыв: yad
– “Еще одно диалоговое окно” (sudo apt install yad
). Это использует тот же синтаксис как zenity
, но добавляет тонну полезных опций, например --button
явно определить кнопки Вашего диалогового окна:
yad --list --button=OK:0
Это отображает окно списка только с кнопкой “OK”, возвращая код выхода 0
.
Вот простой пример, вдохновленный одним страницей справочника:
yad --list --button=OK:0 --checklist --column "Buy" --column "Item" \
TRUE Apples TRUE Oranges FALSE Pears FALSE Toothpaste
Когда “хорошо” нажат в этом состоянии, программа возвращает a 0
код выхода и печать проверенные опции к stdout:
TRUE|Apples|
TRUE|Oranges|
Можно повторно маркировать кнопку, но Вы не можете удалить ее:
$ zenity --list --cancel-label="Go Back" --column="Column 1"
Даст Вам:
Оба yad
и zenity
позвольте Вам использовать поля диалогового окна графического интерфейса пользователя из сценария удара или командной строки оболочки. Yad превосходит Zenity в каждом отделе хотя:
sudo apt install yad
Работы во всех дистрибутивах.
Можно определить несколько индикаторов выполнения в yad, где zenity только предлагает 1. Можно также включать прокручивающий текст.
Можно присвоить любой текст, который Вы хотите к любой кнопке. Также заметьте, что можно включать значок Window также.
Yad отображает текст для Вас для изменения. Zenity не может отобразить существующий текст, можно только ввести новый текст.
Автор Yad и намного больше участников отвечают на Ваши вопросы в группах Google. Я отправил четыре или пять вопросов о передовой функциональности и обычно получаю ответ в течение 24 часов. Не говоря уже об улучшениях обеспечиваются через тот же канал.