Автор Тема: Създаване на елементарна форма и бутони за Gnome  (Прочетена 2660 пъти)

zlatena

  • Напреднали
  • *****
  • Публикации: 32
  • Distribution: Ubuntu 12.04
  • Window Manager: Gnome
    • Профил
Искам да си създам форма и бутони,като при натискане на даден бутон да се изпълнява определен от мен текстов изпълним файл(скрипт).
Нещо подобно на макрос.
На какъв език за програмиране ще е най-удобно да се направи?
Елементарната ми идея се състои в това,че имам примерно 10 скрипта(.sh) и искам да ги управлявам от тази форма с бутоните,а не да отварям папки и под папки и да цъкам върху всеки скрипт.
Всеки бутон ще бъде надписан и ще се отнася за даден скрипт.
Ако ми посочите пример няма да се разсърдя.
"Проблема" може би ще се състои в това,как ще стартирам това приложение,че да ми се отвори формата с бутоните.
Може ли и как да му направя стартер,защото не искам да го стартирам през терминал с команда?
Активен

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8792
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Злате, какво да ти кажа момиче?! Ще е най-удобно на езика, който най-добре знаеш. Имаш избор не като да нямаш. Можеш да пишеш на де що език съществува.

Единственият проблем, който е възможно да възникне е връзката към ГТК, защото гледам ползваш Гном. Не всички езици имат отправки към тази джаджна библиотека, макар количеството им да е огромно. Ако съвсем случайно случаят е такъв, трябва да се види начин за изпълнение на библиотеки на Ц или инжектиране на код на Ц в съответният език.

Така избора отново остава твърде широк. И съвета си остава същия. Написваш си нещата на езика, който най-много харесваш, най-удобен ти е или просто го предпочиташ.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

bvbfan

  • Напреднали
  • *****
  • Публикации: 1056
  • Distribution: KaOS
  • Window Manager: Plasma 5
    • Профил
Здравей, осен със C/C++ се занимавам с Питон, Javascript, PHP и мога да ти дам един съвет, когато искаш да напишеш нещо "набързо" и да получиш задоволителни резултати използвай Питон. В конкретният случай си инсталирай пакета "pygtk" пример за бутон => http://www.pygtk.org/pygtk2tutorial/examples/buttons.py добавяш в началото import os и в def callback(self, widget, data=None): т.е. в "колбак" функцията на всеки бутон си извикваш скриптовете os.system("/path/to/script.sh"). Разбира се може да използваш и С/С++, но ще загубиш повече време и ако не си сериозно "фамилиарна" с тях ще си имаш главоболия. Ако имаш някакви затруднения помести код да разискваме.
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
За такива непретенциозни и опростени диалогови прозорци в GTK среда (каквато е в Gnome, но не само) ти препоръчвам инструмента Zenity. В Qt среда (каквато е в KDE, но не само) подобният за тези цели инструмент е KDialog.
Ето пример със Zenity по твоя въпрос
Код
GeSHi (Bash):
  1. #!/bin/bash
  2.  
  3. SCRIPTS_DIR="/папка/със/скриптове"
  4.  
  5. CHOISE=$(zenity --list --text="Избери скрипт:" --column="" --column="Скрипт" --radiolist TRUE "script1.sh" FALSE "script2.sh" FALSE "script3.sh")
  6.  
  7. $SCRIPTS_DIR/$CHOISE
В този пример приемаме, че всички скриптове са разположени в директорията "/папка/със/скриптове", а в Zenity подаваме списък с имената на файловете на всеки скрипт, като с TRUE сме задали по подразбиране да е избран първият (не е задължително да е първият, а може и всички да са FALSE). Когато изпълниш този скрипт, ще ти се покаже диалогов прозорец, в който можеш да избереш скрипта, който да се изпълни, и той ще бъде изпълнен, благодарение на последния ред в примера, където се извиква пълният път до скрипта за изпълнение (папката, съдържаща скриптовете, последвана от името на файла, което сме избрали от списъка).
Разбира се, това е най-опростеният вариант. Ако скриптовете за изпълнение не са в една папка, то може да махнеш задаването на променливата $SCRIPTS_DIR (вече ще е излишна) и или да опишеш пълните им пътища в списъка, или в списъка да впишеш някакви фиктивни имена, а след това по тях да впишеш условия, извикващи точните скриптове. Например
Код
GeSHi (Bash):
  1. #!/bin/bash
  2.  
  3. CHOISE=$(zenity --list --text="Избери скрипт:" --column="" --column="Скрипт" --radiolist TRUE "ЕДНО" FALSE "ДВЕ" FALSE "ТРИ")
  4.  
  5. if [[ "$CHOISE" = "ЕДНО" ]]; then
  6.      /път/до/скрипта/script1.sh
  7. elif [[ "$CHOISE" = "ДВЕ" ]]; then
  8.      /път/до/скрипта/script2.sh
  9. else
  10.      /път/до/скрипта/script3.sh
  11. fi
В примерите досега задавах флага "--radiolist", който даваше възможност за избор само на една позиция. Списъкът ("--list") в Zenity поддържа и флага "--checklist", при който има възможност от избор на повече от една позиции, с което в твоя случай ще имаш възможност едновременно да изпълниш повече от един скрипт. В този случай имай предвид, че избраните позиции ще влязат в променливата $CHOISE наведнъж, разделени с права черта "|".
Няма да изпадам в по-големи подробности засега. Разгледай примерите, документацията на Zenity и експериментирай, и ако имаш нужда от още помощ, питай.

Стартерите на програмите обикновено седят в /usr/share/applications. Разгледай съдържанието на .desktop файловете там за пример, направи си свой .desktop файл (трябват ти root права, за да правиш файлове там), впиши в него съответната информация и след това си добави стартера на десктопа или в някой от панелите по стандартния начин, по който си добавяш други програми (отдавна не съм работил с Gnome и не мога да те упътя точно). Ето пример за съдържанието на такъв стартер
Цитат
[Desktop Entry]
Name=Моят скрипт
GenericName=My Script
Comment=Скрипт, извикваш други скриптове
Exec=/път/до/скрипта/zenity.sh
Icon=/път/до/иконата/icon.png
Terminal=false
Type=Application
Може да добавиш и ред Categories, в който да опишеш категорията (категории) от менютата на Gnome, където да се вижда стартерът. Използвай другите .desktop файлове за пример как се казват категориите.
« Последна редакция: Apr 28, 2013, 16:21 от neter »
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

zlatena

  • Напреднали
  • *****
  • Публикации: 32
  • Distribution: Ubuntu 12.04
  • Window Manager: Gnome
    • Профил
Ok,thanks!
Аз първоначално се насочих към easybashgui или Glade,но май ще избера Zenity .
Ако има нещо неясно ще питам.
neter,bvbfan,благодаря за примерите.
« Последна редакция: Apr 28, 2013, 17:25 от zlatena »
Активен

bot

  • Гост
Ако искаш сама да си конструираш графичния интерфейс ползвай Anjuta
http://imageshack.us/photo/my-images/594/screenshotfrom201304290.png/
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
инсталиране без KDE i GNOME
Настройки на софтуер
don_mindy 17 9346 Последна публикация May 04, 2004, 19:58
от don_mindy
Gnome 2.6 и Слак 9.1
Настройка на хардуер
EtoR 3 3756 Последна публикация Jun 03, 2004, 15:18
от
KDE и gnome инстолнати заедно
Настройка на програми
hexz 1 3409 Последна публикация Jul 18, 2004, 09:09
от
GNOME, но на коя дистро?
Идеи и мнения
demercel 16 8076 Последна публикация Feb 23, 2006, 09:40
от kill_u
Засичане на GNOME 3 , Лагване на GNOME 3 , Gnome 3 Lag , Nvidia Gnome3 lag
Настройка на програми
fogost 5 6540 Последна публикация Jul 08, 2011, 16:43
от fogost