LINUX.ORG.RU

Написание скриптов с графическим интерфейсом

 , ,


0

0

Есть множество различных инструментов для создания несложных скриптов с минимальным, но всё-таки графическим интерфейсом. В качестве примера можно привести консольный dialog, и графические gtkdialog и kdialog. Также может пригодиться notify-send из поставки libnotify.

Поскольку автор является приверженцем KDE, то рассматривается исключительно kdialog и notify-send. В заметке показываются простейшие приёмы использования kdialog на примере скриптов для решения простых задач.

Используя kdialog, можно писать достаточно сложные скрипты с диалоговым интерфейсом, причём удобные для простых пользователей (а не программистов/администраторов).

>>> Статья

★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от geek

>прекратите насиловать труп

ша... тебя никто не трогает ;)

Linfan ★★★★★
()
Ответ на: комментарий от soko1

> Мус, спасибо за перевод! Очень полезная вещь!

Лёх. Это не перевод. Это оригинал. Написанный после долгого использования этой штуки в быту:)

MooSE ★★★★
() автор топика
Ответ на: комментарий от wieker

>Tcl жив
>wieker

Аха - точно так же как Ленин! :)

anonymous
()

Kdialog - рульная вещь, сам часто его использую. Добавишь к какой-нибудь долго выполняющиеся команде "|| kdialog --msgbox 'готово!'" и больше не надо поминутно заглядывать в консоль, чтобы узнать, когда операция закончится. =)

Что до самой статьи, то в руководстве пользователя kde есть вполне подробное описание kdialog, с примерами. Статья годится только для пропаганды.

И ещё, автору я настоятельно советую заменить

if (test ${DSTFILENAME}1 != "1") then

на

if [ -z ${DSTFILENAME} ] then

Маны всё-таки надо читать.. ;)

// AleX

anonymous
()

Пользуюсь kdialog-ом давным-давно. Штука довольно удобная, до полноценного даже простого интерфейса не дотягивает, но там где нада что-нибуть ввести или вывести из самопального скрипта и нет желания лазить в консолях - самое оно. Статья неплохая но неполная. Можно было бы ещё добавить kdialog --progressbar :)

Sherak ★☆
()
Ответ на: комментарий от anonymous

>Мда, как только люди не извращаются вместо того, чтобы пол-часика почитать введение в Tcl/Tk

Зачем тащить на комп всякую рухлядь и тратить время на её изучение, когда уже есть такая мощная вещь, как баш? К тому же оно ещё страаашное.. :)

anonymous
()
Ответ на: комментарий от Sherak

>Статья неплохая но неполная.

Конечно неполная. kdialog --help даёт больше информации.

Led ★★★☆☆
()
Ответ на: комментарий от Sherak

>Однако диалоговые окна иногда отвлекают. Проблему можно решить заменив их на всплывающие оповещения. Для этого вызовы kdialog надо заменить на вызовы notify-send.

Кстати есть kdialog --passivepopup

Sherak ★☆
()
Ответ на: комментарий от anonymous

>Python+tk вполне хватит и без лишних изысков...

Ага, а после очередного обновления Python весь скрипт придётся писать заново. Спасибо, не надо нам такого счастья.. :)

anonymous
()
Ответ на: комментарий от anonymous

>Зачем тащить на комп всякую рухлядь и тратить время на её изучение, когда уже есть такая мощная вещь, как баш?

Зачем всякое быдло тащится на ЛОР и рассказывает, что быть быдлом - это круто?

Led ★★★☆☆
()
Ответ на: комментарий от Led

>Зачем всякое быдло тащится на ЛОР и рассказывает, что быть быдлом - это круто?

Угу, баш для быдла, настоящие линуксоиды юзают питон.. А ещё настоящие линуксоиды юзают только ie6 вайном, в отличии от всех этих линксов, фаерфоксов, конков и прочих поделок для быдла. :D

//AleX

anonymous
()
Ответ на: комментарий от anonymous

>Угу, баш для быдла, настоящие линуксоиды юзают питон.

баш не обязательно для быдла, но "освоил баш" (вернее, думаешь, что освоил) - не значит, что не-быдло:)

Led ★★★☆☆
()
Ответ на: комментарий от anonymous

Для быстрого приготовления несложного графического интерфейса или визуализации чего-то несложного Tcl/Tk - самое удобное, из того, что я видел. Мне для того, чтобы начать использовать, хватило маленькой главы про Tcl/Tk в книге Уэлша "Запускаем Линукс" ("Running Linux"). Плюс, разобравшись с тиклем поподробнее, я обнаружил весьма неплохой и очень легко расширяемый язык.

А баш никто не отменяет. Что-то пишется на баше, что-то - на awk, что-то - на Перле, что-то - на Тикле, что-то - на Руби, а что-то - на Си. Для GUI на мой взгляд быстрее и удобнее всего Tcl/Tk.

anonymous
()
Ответ на: комментарий от Led

>баш не обязательно для быдла, но "освоил баш" (вернее, думаешь, что освоил) - не значит, что не-быдло:)

А если освоил что-то кроме баша (вернее, думаешь, что освоил ;) тоже совсем не значит что не-быдло.

Sherak ★☆
()

>причём удобные для простых пользователей (а не программистов/администраторов)

ты еретик, штоли? чем сложнее тем круче! а кто не понял тот лох, то есть я хотел сказать быдло

sid350 ★★★★★
()

Ура товагищи! Очередной велосипет!

А если серьёзно, то насмешил афтар новости, ну не слышал он никода ни про tcl ни тем более про AppleScript. Ну ничего, подрастёт, почитает ещё немного умных книжек и может тогда... А может и нет... :)

anonymous
()

>kdialog --sorry 'Нельзя перекодировать файл сам в себя!'

предлагаю афтару осилить mktemp и перестать нести бред в массы.

>Запрашиваем кодировку исходного файла

ога, вот мне делать нечего. сидеть угадывать кодировку. предлагаю афтару осилить enca.

статья ни о чём.

polachok
()
Ответ на: комментарий от polachok

Статья не о mktemp и не о enca. Если ты не понял о чём там речь, то срочно найди ближайшую стенку и соверши над ней акт, сам знаешь какой.

Sherak ★☆
()
Ответ на: комментарий от Sherak

Когда X{K|GTK}dialog научится менять размер шрифта????

anonymous
()
Ответ на: комментарий от anonymous

> Ну zenity запускается в несколько раз быстрее, чем kdialog > (а если kde не загружен - kdialog вообще секунд 10 может > раскачиваться, пока пачку kde'шных демонов запустит, а zenity > всегда быстро взлетает).

> Но дело в том, что zenity написан на чистом gtk в рассчете на > максимально быстрый запуск, а kdialog слинкован с половиной kde...

Блин, повелся на твою зенити. Оказывается она собрана в UTF-8 и больше ничего не понимает. Опций указания кодировки нет. В KOI-8R системе вместо русских букв - вопросики. В стандартный вывод пуляет ошибки

(zenity:7559): Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text()

и опций подавления предупреждений нет. Посему для использования непригодна.

xintrea
()
Ответ на: комментарий от Sherak

>Если ты не понял о чём там речь, то срочно найди ближайшую стенку

статья о том что афтар осилил man kdialog и привёл 2 примера на уровне детского сада (так или иначе что-нибудь более хитрое с этим kdialog сотворить вряд ли можно). а еще выплюнул "за высокой горой есть та же фигня для гтк, но те маны я ниасилил". какой молодец. широкие массы в экстазе ринулись облизывать пятки. или не? я что-то упустил? там был какой-то скрытый философский смысел? поделитесь с убогими ксеноцефалами.

polachok
()
Ответ на: комментарий от xintrea

>Посему для использования непригодна.

это не zenity, а koi8-r для использования непригодна.

polachok
()
Ответ на: комментарий от anonymous

> Маны всё-таки надо читать.. ;)

> // AleX

Ну а (тут две ошибки!!!)

if [ -z ${DSTFILENAME} ] then

заменим на

if [[ -z ${DSTFILENAME} ]]; then


Маны всё-таки надо читать.. :D

fi ★★★
()

По-моему все-таки проще писать на перле с gtk с полноценным гуи. gtk реализована для кучи языков, в том числе и для перла.

mynck
()

Прикольно! Побаловался с notify-send :)

anonymous
()
Ответ на: комментарий от anonymous

>> Да-да, автор статьи не осилил tk!

> Именно! Python+tk вполне хватит и без лишних изысков...

Питон -- тоеж лишний изыск :)

gaa ★★
()
Ответ на: комментарий от FiXer

> Опа, гик и жобэ имеют зуб на тцл/тк? о_О

Ну так его ж нет в предмете их фетишистского обожания, т.е. в гноме. Зато вот за пистон или моно пасть порвут :)

gaa ★★
()

Офигеть! Почему все скриншоты на сайте gtkdialog сделаны в винде??? Виндузятники они закостенелые, чтоли.

anonymous
()
Ответ на: комментарий от gaa

>> Опа, гик и жобэ имеют зуб на тцл/тк? о_О

>Ну так его ж нет в предмете их фетишистского обожания, т.е. в гноме. >Зато вот за пистон или моно пасть порвут :)
>gaa

Завидуешь? Оно и понятно - выбрал жрать гов... тЫскель а других заставить не смог ,) Ты еще COBOL предложи - пошлют туда же.

anonymous
()
Ответ на: комментарий от anonymous

>Мне для того, чтобы начать использовать, хватило маленькой главы про Tcl/Tk в книге Уэлша "Запускаем Линукс" ("Running Linux"). Плюс, разобравшись с тиклем поподробнее, я обнаружил весьма неплохой и очень легко расширяемый язык.

Я не спорю, что тикль прост в изучении, я просто не понимаю, что он мне даст. Мне от kdialog нужны только msgbox и диалог выбор файла. Всё! Ну поставлю я tk, и что? Там какой-то особенный msgbox? Или какой-то невероятно навороченный диалог выбора файла?

Или взять вышеприведённый пример с "|| kdialog --msgbox 'готово!'". С тиклем мне пришлось бы писать прогу, которая выводила бы нужное сообщение, т.е. изобретать велосипед, с башем и kdialog этого делать не нужно.

// AleX

anonymous
()
Ответ на: комментарий от fi

>Ну а (тут две ошибки!!!)

Облажались вы, сударь, "-z" прекрасно работает с одинарными скобками. =) А вот точку с зяпятой я действительно пропустил.

// AleX

anonymous
()
Ответ на: комментарий от mynck

>По-моему все-таки проще писать на перле с gtk с полноценным гуи.

По-моему ты таки не понял, для чего нужен kdialog. Он нужен тем, кому нужно просто добавить в скрипт диалог выбора файла или извещение об успешном завершении работы. Ни на какой полноценный конструктор гуи он не претендует.

// AleX

anonymous
()
Ответ на: комментарий от anonymous

>>Ну а (тут две ошибки!!!)

>Облажались вы, сударь, "-z" прекрасно работает с одинарными скобками. =) А вот точку с зяпятой я действительно пропустил.

>// AleX

ну а "${...}" где для внешней проги [ ?

fi ★★★
()
Ответ на: комментарий от fi

>ну а "${...}" где для внешней проги [ ?

Неосилил вопрос.. В моём примере скобки фигурные стоят, причём пример работает как с ними, так и без. В чём смысл вопроса?

// AleX

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.