Я только что обнаружил, что zenity поддерживает HTML-теги.
zenity --error --text "hello <b>world</b>"
но как заставить его работать с типом entry
?
zenity --entry --text "hello <b>world</b>"
Это печать тегов вместо их интерпретации.
Это можно исправить, изменив строку entry.c
файла следующим образом: gtk_label_set_text_with_mnemonic
на gtk_label_set_markup
, но я не знаю, почему для какой цели по умолчанию установлено мнемоническое значение.
Zenity и опция entry
не поддерживают опции разметки «pango».
error
, info
, question
, warning
- единственные опции, которые поддерживают эти наценки.
Если вы изучите справочную страницу на zenity - эти опции могут включать или выключать разметку панго.
К вашему сведению эта ссылка дает вам поддерживаемые наценки: http://developer.gnome.org/pygtk/stable/pango-markup-language.html
Единственное предложение, которое я могу make - сделать этот запрос перед разработчиками zenity
Это можно сделать с помощью yad
, который можно установить из Центра программного обеспечения. Вы можете запустить:
yad --title "Customised title here" --entry --text " Are you <b>really</b> sure you want to add an entry?" --width=300 --center --button="gtk-cancel:252" --button="gtk-ok:0"
Чтобы это можно было использовать, нам нужно получить любые введенные данные и проверить, какая кнопка была нажата , Это делает это:
data=$(yad --title "Customised title here" --entry --text " Are you <b>really</b> sure you want to add an entry?" --width=300 --center --button="gtk-cancel:252" --button="gtk-ok:0");rc=$?; [[ $rc = 252 ]] && data="";echo $data
Для справки по типу яда yad --help-all
или man yad
, но я обнаружил, что практические примеры легче адаптировать. Здесь есть здесь .
zenity --text-info --html
также может поддерживать разметку Панго (а также более продвинутый HTML). Это работает, когда zenity скомпилирован с помощью webkit, и он присутствует во всех текущих версиях Ubuntu (но он отсутствует после недавнего обновления в развивающейся версии 'Wily').