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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Сама концепция программирования.  (Прочитано 997 раз)

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

Оффлайн Otetz

  • Автор темы
  • Активист
  • *
  • Сообщений: 455
    • Просмотр профиля
Сама концепция программирования.
« : 15 Январь 2009, 02:44:24 »
Друзья! По работе потребовалось написать небольшую программку. В общем-то, она простая... До всего этого имел дело только с php. РНР для этой программки не подходит (слишком много всего нужно на комп ставить, а машина слабая). Выбрал python + GTK (нужно ГУИ, так как программкой будут пользоваться все).

Но тут я, наконец, понял, что не понимаю не столько язык, сколько саму концепцию программирования pyGTK.

Вот, например, простая задача. Нужна форма. В поля вписывается текст. Он парсится и выводится в другом окне. По идее, задача проще некуда. Консолный вариант уже готов. Всё считывается с клавиатуры, выводится в stdout и пишется в файл.

Но, поскольку, мне нужно GUI... Застрял и не могу понять, как текстовым полям назначить переменные? Как перенаправить вывод из stdout в нужное мне место (в данном случае, в текстовое поле ReadOnly). Не могу понять именно механизм взаимодействия виджетов.

Возможно, кто-то из вас владеет хорошей книгой и может её посоветовать/поделиться? Не обязательно по pyGTK. Главное, чтобы там были изложены САМИ ОСНОВЫ программирования. Именно программирования, а не какого-то конкретного языка-с-тулкитом.
В сети натыкаюсь на руководства, где всё вперемежку и выделять разумное зерно из кучи мусора сложновато. Вот. Надеюсь, вопрос понят :) Буду рад вашей помощи.
Anything, that MAY go wrong, WILL go wrong...

Оффлайн Nxx

  • Старожил
  • *
  • Сообщений: 1635
    • Просмотр профиля
Re: Сама концепция программирования.
« Ответ #1 : 15 Январь 2009, 03:37:35 »
Не понятно. У вас конкретная проблема с выводом текста, а вы спрашиваете книгу по основам парограммирования. Вы же саму-то прграмму написали.

И основы программирования для всех языков разные.
OpenSUSE 11.3 x86-64

Оффлайн axe

  • Старожил
  • *
  • Сообщений: 1203
    • Просмотр профиля
Re: Сама концепция программирования.
« Ответ #2 : 15 Январь 2009, 08:33:33 »
Ятож не понял. М.б. в названии темы не хватает одного слова: "Сама концепция программирования GTK"?

Оффлайн dmay

  • Старожил
  • *
  • Сообщений: 1084
  • man google, кому сказал!
    • Просмотр профиля
Re: Сама концепция программирования.
« Ответ #3 : 15 Январь 2009, 10:03:50 »
тему вмемориз
топикстартера в Кнута
мвахахахаха
Ты попал в мою коллекцию криворуких тупых нубов!

Оффлайн DnSL48

  • Активист
  • *
  • Сообщений: 286
    • Просмотр профиля
Re: Сама концепция программирования.
« Ответ #4 : 15 Январь 2009, 11:07:43 »
По всей видимости требуется копать именно в сторону GTK, т.к. в разных системах различные концепции.
P.S. есть еще php-GTK,  gtkmm, gtk2-perl. Везде присутствует именно GTK.
ArchLinux x86_64

Оффлайн Otetz

  • Автор темы
  • Активист
  • *
  • Сообщений: 455
    • Просмотр профиля
Re: Сама концепция программирования.
« Ответ #5 : 15 Январь 2009, 11:16:55 »
 :2funny: Вот так и думал, что будут возгласы, подобные посту dmay :D Смеяться можно, но не нужно. Все когда-то что-то начинали с 0. Я не программист и не собираюсь им становиться, мне просто нужно написать небольшую программку.

Попробую объяснить. Ахе почти правильно меня понял. Я не могу понять концепцию программирования граф. интерфейса вообще. GTK это или QT- не суть. Я, конечно, мог спросить "как сделать то или это", но я не хочу учиться нажимать на 3 кнопки по определённому алгоритму. Хочу уяснить суть, чтобы можно было самому думать, как сделать "это".

Ну вот к примеру, когда пишешь на рнр динамическую страничку с некими полями ввода данных. Там, грубо говоря, явно указываешь, что на одном текстовом поле- переменная а, на втором b и т.д. А в том же gtk я чё-то на это не наткнулся. Т.е., как-то по другому делаются подобные вещи. Вот я и хочу понять разницу эту.

Nxx, в консольном приложении на python и в том же приложении с гуём будет офигенно разный код.
Anything, that MAY go wrong, WILL go wrong...

Оффлайн axe

  • Старожил
  • *
  • Сообщений: 1203
    • Просмотр профиля
Re: Сама концепция программирования.
« Ответ #6 : 15 Январь 2009, 11:38:03 »
Ну, если очень в общем, то в большинстве framework'ов каждый элемент управления - это отдельный компонент с собственным набором свойств и методов. Компоненты сами по себе никак не связаны с логикой приложения, они могут только получать некие сигналы (события) от пользователя, системы и других компонентов и реагировать на них. Реакция на события - это и есть место, где программист реализует основную функциональность приложения.

Если более конкретно, то, например, у компонента PyGTK gtk.Entry (поле текстового ввода) есть методы get_text() - получить то, что туда ввел пользователь, и set_text() - отобразить заданную строку в поле ввода. Т.е, к примеру, в обработчике события - "нажатие на кнопку OK" можно получить строчку, которую пользователь ввел в текстовое поле, и сделать с ней все, что угодно.

Ну и в качестве бонуса - ссылке :)
http://habrahabr.ru/blogs/PyGTK/
http://www.pygtk.org/pygtk2tutorial/index.html

Оффлайн Nxx

  • Старожил
  • *
  • Сообщений: 1635
    • Просмотр профиля
Re: Сама концепция программирования.
« Ответ #7 : 15 Январь 2009, 11:41:54 »
Начните с Бейсика - у вас таких вопросов не возникнет.
OpenSUSE 11.3 x86-64

Оффлайн tox

  • Новичок
  • *
  • Сообщений: 5
  • В мире что-то не так? Или это у меня в голове?
    • Просмотр профиля
Re: Сама концепция программирования.
« Ответ #8 : 16 Январь 2009, 15:06:15 »
ты в курсе объектно-ориентированного подхода вообще?
Двинь двинутое!

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Сама концепция программирования.
« Ответ #9 : 18 Январь 2009, 11:56:11 »
Сама концепция программирования проста как апельсин.
И ни чем не отличается от любого другого языка/тулкита в любых сочетаниях.

pyGTK реализует ОО обертку над GTK. Предоставляет тебе набор классов. Ты наследуешься от предоставленных пустышек-окошек и наполняешь их своими элементами. когда окна подготовлены к работе ты запускаешь обработчик очереди сообщений (он скрыт где-то глубоко в недрах pyGTK). из этой функции как правило выход только один - завершение приложения. А твои окошки будут получать соответствующие события и вызывать виртуальные ф-ции типо OnClick если переопределяешь соответсвующий метод можешь обрабатывать клики ну и прочее в таком духе. Извини если криво, но объяснил как мог.

Советую почитать что-нибудь о работе графических систем вообще и о программировании под эти системы. Не важно какой язык и какой фреймворк там используется для примера. Принципы везде одинаковы и ни чем не отличаются.

 

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