LINUX.ORG.RU

Примеры самых маленьких программ с интерфейсом для Linux новичку

 ,


1

3

Я хотел бы научиться программировать. И я думаю что самый быстрый способ учиться программированию, это начать разбирать маленькие программы, то есть смотреть как они устроены и учиться на их примере создавать свои. И я подумал может быть многие из вас начинали с этой мысли и вы можете помочь мне с примерами самых маленьких коротких примитивных программ с интерфейсом. Потому что обычно самоучители по программированию начинаются с простой программы «Hello World», но эта самая примитивная программа выполняется из терминала и дает новичку маленькое представление о том как устроены программы выполняющиеся из командной строки, но это не дает новичку представления о том как устроен интерфейс и как код взаимодействует с интерфейсом и какой код и что вообще используется для написания маленького самого примитивного интерфейса. Поэтому мне бы хотелось пример самой маленькой программы с интерфейсом чтобы я могу ее запустить на компьютере и понимать. То есть я хочу что-то вроде примитивного «Hello World» но чтобы с интерфейсом. Например интерфейс с кнопочкой на которую можно было бы нажать и которая бы выполняла простейшую функцию. Я просто хочу пример как создается интерфейс. Что-то вроде программы на языке С++ и интерфейсом как в gnome,То есть маленькую программу в устройстве которой быстро разобрался бы и новичок. То есть тчобы код был не больше на пример вордовской страницы хотя бы и был простой для понимания и в то же время и с простым для понимания его устройства интерфейсом. Может у вас есть какие-то полезные ссылки на эту тему.

А то о чем ты рассказываешь — это не программирование. То есть, допустим, ты в языке X узнал, как запилить кнопку, допустим, putButton(someButton...). Это всего лишь синтаксис конкретного языка, не более. Допустим, в другом языке это делается someButton(paramrters) put. И что тебе это даст в плане понимания программирования как такового? Ничего. Поэтому, ты определись, чему т хочешь научиться, кнопкоклепательству или, все таки, программированию. Если второе, то знание того, как создается кнопка в конкретном API тебе не нужно.

nuboquest
()

XLib Programming Guide.

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

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

Например. Допустим такая программа. Существует главное окошко интерфейса пусть окошко будет разделено на две половины. В первой половине окошка будет просто кнопочка «запустить» и чтобы после нажатия на эту кнопочку второй половине интерфейса выскакивала надпись «Hello World» Мне кажется что-то настолько примитивное должно иметь очень простой код, но в тоже время это дало бы малюсенькое представление о том что такое интерфейс и что такое программа и как они связны.

Я знаю это глупый пример совершенно бесполезной вещи, но может есть пример программ таких же простых по устройству, но более полезных которых я мог бы поизучать. Мне просто кажется что может многие с этого начинали.

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

Мне бы хотелось бы разобраться в процессе создания чего-то. Чтобы иметь представления о том как создается программа, о том как процесс создания начинается, все этапы и заканчивается, но мне сложной найти подобный учебный материал.

SamFisu
() автор топика

интерфейсы в питоне проще делать

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

Самое простое (и лаконичное) создание графических перделок которое я встречал, это связка tcl/tk. Например:


pack [label .mylabel -text "Hello world!"]
pack [button .mybutton -background "yellow" -text "EXIT" -command "exit"]

это уже готовый к употреблению гуй.

nuboquest
()

«Hello World» но чтобы с интерфейсом.

LAMP? Там нулевой порог вхождения.

emulek
()

обьясните ему уже, что паграма и кнопачки это разные сущности..

anonymous
()
#include <QApplication>
#include <QPushButton>
#include <QObject>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QPushButton button("Hello, World!");
    QObject::connect(&button, SIGNAL(clicked()), qApp, SLOT(quit()));
    button.show();
    return a.exec();
}
EXL ★★★★★
()

но это не дает новичку представления о том как устроен интерфейс

Читай man getopt_long — вот тебе и интерфейс.

Например интерфейс с кнопочкой на которую можно было бы нажать и которая бы выполняла простейшую функцию

GUI нужно заниматься лишь когда нормально научишься консольные приложения писать. И вообще, GUI нужно в столько редких случаях, что можно сказать, что не нужно вообще!

Eddy_Em ☆☆☆☆☆
()

Кстати, вот тебе пример. Рисуй кнопку, вешай обработку событий — вуаля!

А вот это — вообще уже и с обработчиками (только я там еще не подправил косяк с зависанием на pthread_join).

Eddy_Em ☆☆☆☆☆
()

...И я думаю что самый быстрый способ учиться программированию...

Если бы я в свое время учился программировать на ассемблере или хаскеле по примерам, то я сейчас в психушке был бы. Если бы такой способ был-бы эффективен, то во всех учебных заведениях и курсах по программированию использовали такой метод, однако такого нету. Хочешь научится программированию,бери учебник и читай, попутно пробуя используя свои знания писать небольшие программы.

Taetricus
()

Особенность программ с графическим интерфейсом в том, что они сразу после запуска уходят в основной цикл обработки событий. У них есть очередь событий, и в основном цикле программа обрабатывает события из очереди по одному либо спит, пока событий нет.

Для понимания очереди событий надо как минимум иметь представление о том, что такое составные структуры данных и структура данных «очередь», а желательно еще и «дерево».

Консольные программы хорошо подходят для изучения структур данных. Альтернативно можно изучать javascript + DOM (по учебнику на javascript.ru), так как там используются те же принципы, что и в GUI-приложениях: неявный основной цикл для обработки очереди событий, древесная иерархия с диспетчеризацией событий по узлам дерева, асинхронное выполнение.

Создание собственно GUI хорошо изучать на примере C++ (с Qt) или python (с Tk или PySide), но уже после изучения теории: ООП, структур данных и сути цикла обработки событий.

quiet_readonly ★★★★
()
Последнее исправление: quiet_readonly (всего исправлений: 1)
Ответ на: комментарий от SamFisu

начните с консольных примеров, хеллоуворд в консоль, сортировочки, вот это всё.

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

Если бы такой способ был-бы эффективен, то во всех учебных заведениях

А задача учебных заведений не научить а дать некоторый объем общих знаний не всегда могущим его осилить индивидам. Иначе отсев там был бы гораздо злее.

А так я знаю нескольких которые учились по коду и у них реально пошло. И нескольких которые честно прочитали учебник без всяких результатов.

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

С такими требованиями тебе в Lazarus.

Гугли. Присоединяюсь к товарищам выше - это не программирование, а клепательство графического интерфейса.

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

Twissel, ну как скажете, везде в интернете написано что даже «Hello world" с интерфейсом какая никакая но все таки программа)))) ,а не просто синтаксис или интерфейс, ведь что-то же делает хоть и бесполезное но для новичка я уже что-то, какое-то представление.

LiBer, мне все таки хочется чтобы все непременно с интерфейсом даже если это просто простые примеры, хеллоуворд, или сортировочки. Как-то скучно когда все просто в консоли.

nuboquest, EXL, спасибо за коды, я буду разбираться как их выполнить/исполнить.. и всем спасибо за ответы, я приму все к сведению. Нужно только разобраться, я не все понял но я посмотрю подробнее ссылки и названия вы дали.

Я еще нашел вот такую страницу с простой программой с интерфейсом, нужно будет разобраться просто что там, хорошо бы больше чего-то подобного найти, если это это что я хотел, нужно посмотреть еще http://rus-linux.net/MyLDP/BOOKS/Linux-tools/GUI_01.html

ха, даже на вики есть страница с картинкой примером «Hello world» с графическим интерфейсом на GTK+ https://ru.wikipedia.org/wiki/Hello,_world!

SamFisu
() автор топика

Что за поток мыслей?

andreyu ★★★★★
()

GUI-программирование это довольно сложный раздел для новичка. Лучше начать с консольных программ, хорошо освоить язык программирования, научиться программировать и потом переходить на GUI-программы.

Legioner ★★★★★
()

Я хотел бы научиться программировать

Это похвально.

И я думаю что самый быстрый способ учиться программированию, это начать разбирать маленькие программы, то есть смотреть как они устроены и учиться на их примере создавать свои

Неправильно думаешь.

И я подумал может быть многие из вас начинали с этой мысли и вы можете помочь мне с примерами самых маленьких коротких примитивных программ с интерфейсом

Те, кто так начинал программировать не умеют, если нормально за ум не взялись а формошлепство вообще к программированию имеет очень далекое отношение.

Потому что обычно самоучители по программированию начинаются с простой программы «Hello World», но эта самая примитивная программа выполняется из терминала и дает новичку маленькое представление о том как устроены программы выполняющиеся из командной строки, но это не дает новичку представления о том как устроен интерфейс и как код взаимодействует с интерфейсом и какой код и что вообще используется для написания маленького самого примитивного интерфейса.

В каждом ЯП, ОС и т.д. есть чуть более, чем 100500 способов создания GUI, программировать они тебя не научат.

Поэтому мне бы хотелось пример самой маленькой программы с интерфейсом чтобы я могу ее запустить на компьютере и понимать.

Опять, их есть 100500, определись с ЯП, выучи его, подучи алгоритмы, матан и тогда возвращайся.

То есть я хочу что-то вроде примитивного «Hello World» но чтобы с интерфейсом. Например интерфейс с кнопочкой на которую можно было бы нажать и которая бы выполняла простейшую функцию.

Их полно в гугле. Ищи сам.

Я просто хочу пример как создается интерфейс.

Зависит от того, на каком уровне абстракции ты находишься. Учи архитектуру ЭВМ.

Что-то вроде программы на языке С++ и интерфейсом как в gnome,То есть маленькую программу в устройстве которой быстро разобрался бы и новичок.

«С++», «новичок», «gnome» - т.е. «gtk/gtkmm» и «разобрался» в одном предложении звучит несколько странно.

То есть тчобы код был не больше на пример вордовской страницы хотя бы и был простой для понимания и в то же время и с простым для понимания его устройства интерфейсом.

Какой нафиг вордовской страницы? Код далеко не в ворде пишут и измеряют никак не страницами. А C++ вообще очень не очевидный для понимания язык.

Может у вас есть какие-то полезные ссылки на эту тему.

Есть. Раз, два, три, четыре, пять. Можно и больше ссылок, но я думаю, что направление правильное ты и сам уже понял.

peregrine ★★★★★
()

Ок. Я вижу для тебя 2 варианта: первый тебе уже посоветовали tcl/tk либо tk в твоём любимом языке, второй html5/js - стильно, модно, молодежно, а главное более практично и ближе к реальной жизни.

no-such-file ★★★★★
()
Ответ на: комментарий от SamFisu

Просто принципы построения GUI могут меняться со временем — эволюционировать согласно развития индустрии.

Принципы программирования как такового в этом плане более постоянны.

Именно это я и хотел донести своим предыдущим постом :-)

Twissel ★★★★★
()

Устанавливаешь Qt Creator, там в разделе Examples смотришь самые простые - вот и всё. GTK изучать не рекомендую.

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

А задача учебных заведений не научить а дать некоторый объем общих знаний не всегда могущим его осилить индивидам. Иначе отсев там был бы гораздо злее.

Некоторый объём общих знаний можно получить изучая примеры, но никто этого не делает.

А так я знаю нескольких которые учились по коду и у них реально пошло.

Разве я сказал, что такое метод не работает? Работает, сам один ЯП так изучал, но здесь вопрос времени, прямым путём гораздо меньше времени уйдёт.

И нескольких которые честно прочитали учебник без всяких результатов.

Я знаю одного человека который в уме не может высчитать результат выражения 12000 * 10(в прямом смысле), дай ему учебник и толку будет 0.

Taetricus
()

Твой способ годиться для изучения нового языка/библиотеки. Для изучения программирования с нуля гуй несколькосильно вреден. Читай Вирта, ковыряй паскаль, а формочки шлёпать много ума не нужно, это за тебя ИДЕ сделает.

ya-betmen ★★★★★
()
Ответ на: комментарий от SamFisu

Как-то скучно когда все просто в консоли

Тогда просто перестань страдать фигнёй, программирование не твоё.

Я вообще с этого начинал, а ему видите ли в консоли скучно.

ya-betmen ★★★★★
()

Я не понял, тебе программировать надо или гуйню ляпать?

anonymous
()

Самый простой интерфейс - CLI. Освой его сначала. Достаточно стандартных средств C.

annulen ★★★★★
()

Запрос непонятен. Гуи делают используя готовые библиотеки, как правило. Ты хочешь научится использовать библиотеки или программировать? В гноме, в теории, гуи программируется мышкой.

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

И вообще, GUI нужно в столько редких случаях, что можно сказать, что не нужно вообще!

Скажи это разработчикам браузера, с которого ты тут торчишь и разработчикам ОСи на которой этот браузер крутится.

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

Вот это и есть — те редкие случаи. Т.е. гуйня нужна для тырнетов, рисовалок (кады всякие, инкскейпы и прочие гимпы) и просмотра документов. Все вроде.

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

На самом деле гуйня НЕ нужна программистам и сисадминам. Все остальные пользователи в гробу видели консоль и не будут использовать/покупать твоими программы. По этому если ты пишешь софт не только для айтишников, то гуй обязателен.

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

программистам и сисадминам

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

На самом деле

просто срыв покровов.

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

Все остальные пользователи в гробу видели консоль и не будут использовать/покупать твоими программы.

А я в гробу видел всех остальных пользователей. Жена нормально ручками монтирует/размонтирует флешки, использует mc, знает несколько базовых команд. Чем другой пользователь хуже?

По этому если ты пишешь софт не только для айтишников, то гуй обязателен.

Чушь! Гуй обязателен, как я уже говорил, лишь там, где без него никак не обойтись.

Вот, скажем, на кой хрен в видеоплеере гуй? mplayer отлично справляется безо всякой этой бредятины. И так далее.

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

скриптоту встраивают в любую гуйню приличного уровня

Ну я же говорю, что разработчикам не нужна. А для обычных юзеров, как ты и сказал гуйня, в которую, как ты и сказал, встраивают скриптоту. Если я тебя правильно понял.

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