Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Правильное GUI/консоль приложение  (Прочитано 3161 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн savy

  • Автор темы
  • Новичок
  • *
  • Сообщений: 25
    • Просмотр профиля
Правильное GUI/консоль приложение
« : 28 Декабря 2009, 16:04:26 »
Всем Привет!

Подскажите, плиз, какое должно быть "правильное" приложение?
Т.е. как сделать так, чтобы оно и как консольное запускалось и как оконное? Какие "либы" сейчас используют? Программирую под питоном, но хорошие концепции подойдут, имхо, для любого языка ))

Оффлайн Упс

  • Старожил
  • *
  • Сообщений: 3231
    • Просмотр профиля
Re: Правильное GUI/консоль приложение
« Ответ #1 : 28 Декабря 2009, 22:58:27 »
Всем Привет!

Подскажите, плиз, какое должно быть "правильное" приложение?
Т.е. как сделать так, чтобы оно и как консольное запускалось и как оконное? Какие "либы" сейчас используют? Программирую под питоном, но хорошие концепции подойдут, имхо, для любого языка ))
Тема "правильного" приложения не раскрыта, понятие растяжимое. GTK, GNOME, QT, KDE, ..........?
Написать консольное и добавить GUI. Либы используют те которые нужны. Или интересует существует-ли мода на либы, типа в этом сезоне используем ......
xUbuntu 12.04

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Правильное GUI/консоль приложение
« Ответ #2 : 29 Декабря 2009, 08:31:41 »
"Правильные" концепции такие, мсм:
- межплатформенность (обязательно)
- изначально заложенная распределенность приложения
- отображение через браузер или консоль.
Если речь идет про отдельное приложение (само в себе и не планируете ничего в смысле переноса), то делайте что угодно и как угодно (как Вам проще).

Оффлайн savy

  • Автор темы
  • Новичок
  • *
  • Сообщений: 25
    • Просмотр профиля
Re: Правильное GUI/консоль приложение
« Ответ #3 : 01 Января 2010, 09:01:57 »
Всех с Новым Годом!

Например, у меня стоит графический архиватор (File Roller), который, как я понимаю, при открытии архива сначала передаёт имя архива програме p7zip, а потом получает от неё список файлов и строит по нему свой графический List. Xarchiver также, наверняка, использует p7zip. Т.е. любой может написать свою обёртку на любом языке и для любой среды. Вот мне и хотелось бы узнать, как они там общаются между собой? ))

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Правильное GUI/консоль приложение
« Ответ #4 : 11 Января 2010, 11:38:20 »
Какая-то графическая программа (неважно на чем написанная) по щелчку запускает какую-то консольную утилиту. Результат ее (stdout) парсится и выводится (разносится по полям) в графической программе.
Примеры.
на php и перле что-то типа
$var =`команда параметры_всякие_разные_от_графической_утилиты`;
на C#, Java, C/C++ (Qt, Gtk, Tk) есть аналогичные вызовы команд, см. posix.
« Последнее редактирование: 11 Января 2010, 11:58:40 от alexander.pronin »

Оффлайн Riateche

  • Активист
  • *
  • Сообщений: 279
    • Просмотр профиля
    • Idzaaus
Re: Правильное GUI/консоль приложение
« Ответ #5 : 11 Января 2010, 12:01:21 »
Имхо, более правильное решение - сделать библиотеку, реализующую функциональные возможности программы, а затем написать отдельно консольную и графическую утилиты, которые юзают эту библиотеку. Если вы пишете на питоне, то библиотеку можно реализовать  в виде обычного модуля.

Всё-таки парсить вывод консольной утилиты - это изврат. Простой пример: функция возвращает вам массив, консольная утилита его выводит. Графическая должна брать этот вывод и заново превращать его в массив? Нет, лучше взять ту же функцию, написанную вами, которая возвращает массив, и просто получить из нее массив.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Правильное GUI/консоль приложение
« Ответ #6 : 11 Января 2010, 12:14:21 »
Всё-таки парсить вывод консольной утилиты - это изврат.
Извращение - писать каждый раз консольные утилиты (с новыми (старыми ошибками). Я знаю случаи, когда такое написание кончалось крахом fs. После таких экспериментов желание изобретать велосипед пропадало.
Я не говорю, что использование проверенного кода - это быстрее, безопаснее и более платформенно независимее (если можно об говорить). 8)

Оффлайн Frank

  • Старожил
  • *
  • Сообщений: 1799
  • Профессиональный любитель
    • Просмотр профиля
    • Народный форум Николаева
Re: Правильное GUI/консоль приложение
« Ответ #7 : 11 Января 2010, 12:27:17 »
В таком случае делается так: пишется весь функционал в отдельной библиотеке (.so в линукс, .dll в винде), а так же пишутся юзающие её обёртки-гуи: консольный, GTK, Qt, итд.

 

Страница сгенерирована за 0.046 секунд. Запросов: 25.