LINUX.ORG.RU

Разработка графических приложений на c++

 , ,


0

2

Все знают что для создания текстового helloworld-а нужно немного, а вот как создавать графические приложения? Желательно в компиляторе gcc!

Мне не нужны игры, мне нужны функционируещие кнопки!



Последнее исправление: beastie (всего исправлений: 2)

«Нарой в гугле туториал SDL, пофиг что ничего не поймешь...» (с) Тег c++, а конпелятор почему-то gcc... Может, все-таки g++?

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)

Ну и да, насколько графическое-то? Если амбиции упираются в GUI - тогда тебе надо Gtk или Qt, 3D - «нарой в гугле туториал по opengl» (с)

slackwarrior ★★★★★
()

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

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

Спасибо кэп. Но тег c++ обязывает уточнить, чего хочет ТС, остальное - телепатия.

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

Кому нужно на пыхтоне - тот задает соответствующий вопрос. В отдельной ветке. А тебе не нужно было заходить в этот тред :)

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

Судя по вопросу, ТС просто не знает о существованиии других ЯП. Я тоже таким когда то был...

А вот Вам не нужно говорить мне что мне нужно а что не нужно;-)

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

Если интересны аргументы, то и спрашивайте за аргументы.

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

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

Если интересны аргументы, то и спрашивайте за аргументы.

Люто оффтопить - традиция, разумеется... Но, конечно, не интересны :) Мы в С++ треде по конкретному вопросу - по нему и высказывайтесь, если есть что сказать. Оффтопить - го создать ветку «питон vs с++» и там argue like hell. (Срач немного предсказуем) (Я канеш не модератор, чтоб «тибе указывать», но совесть-то должна быть, не? :))

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)

создавать графические приложения? Желательно в компиляторе gcc!

Мне не нужны игры, мне нужны функционируещие кнопки!

годно.

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

Таких веток тут было 100500, все уже давно сказано.

Меня совершенно не интересует Ваше мнение по поводу того что есть оффтопик, а что нет - Вы то ли тролль, то ли просто некомпетентны. Так что поберегите ресурс своей бедной клавиатуры.

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

Конечно, не интересует - тебя интересует оффтопить :) Либо ты просто считаешь себя лучше и правильнее других. Твое ценное мнение про питон очень важно в С++ треде, чо.

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

Еще раз (для толстых и зеленых) - ТС явно не в теме. На его уровне писать гуй на питоне (или его аналогах) гораздо более прямой и правильный путь, это мнение не тока меня-дилетанта но и местного компетентного большиства.

Мне как бы бы больше добавить нечего, кормить Вас уже лень. Будете продолжать - заигнорю, не по злобе а просто что бы не читать Вашего бреда, времени жалко.

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

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

Правильно. Гуйню нужно писать:

  1. На лапшевидных NCurses(w)/GTK+ с callback'ами;
  2. Vala, которая кросс-платформенна только в GNU/Linux;
  3. PyQt, PyGTK, который подтормаживает везде, где только можно, хотя внутрях использует все те же Qt/GTK+ (ex. Anki);
  4. Tkinter, Tcl/Tk, который выглядит так, будто программу разрабатывал 60-летний академик, поросший молью;
  5. C# + Mono, ибо синтаксический сахар. На чужеродный runtime насрать.
  6. JavaFX/SWT, и то, что кнопка жрёт 120 Mb RAM — это нормально.

Ни в коем случае не используйте Qt, gtkmm, wxWidgets, FLTK, Juce!!! Ведь они дают вам наиболее сбалансированное решение: высокопроизводительный ООП-GUI, достаточную абстракцию и возможность использования в приложении C/C++-библиотеки. Это не юниксвейно и должно наказываться.

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

Свой бред писать - не жалко, ок (с опорой на некое навангованное «большинство» :)) Не вангуй про ТСа, ок? И гуй на питоне пишут далеко не все (пишут на чем закажут - бывает такое (и не спорь, если не знаешь - я вот сам видел неоднократно :)) - а если шибко умные начнут пихать на питоне - заказчики пойдут к другим и им заплатят). Если вот ТСу очень хочется - ты ему запретишь?

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

Как бы средство от решаемой задачи зависит, нет?

Если я пишу очередной вьювер результатов/форточку для запуска расчетов студентами, мне совершенно пофик как оно выглядит, лишь бы было удобно и быстро писалось. Для таких объемов гуя тормоза вообще незаметны (ну конечно если Вы запускаетесь на каком нить атоме наверное будет видно, я на своем железе ни разу не наблюдал).

Если пишется монтсер навроде офиса... но я не пишу таких мнстеров. И ТС тоже не пишет, что характерно.

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

ТС-у кто то заказа гуй на плюсах? И он пошел на ЛОР спрашивать как выполнить заказ? ну-ну...

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

Так и пусть ТС формошлёпит на каком-нибудь Qt. Скорость формошлёпки в каком-нибудь Qt Creator или Qt Designer в некоторых местах обгоняет даже Delphi. А логику пишет на своём привычном «Цэ с классами».

Под твой Python есть дизайнеры форм? Чтобы быстро отделить логику от гиушки и не писать последнюю ручками?

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

Че то было такое... я не пользуюсь.

Насчет формошлепки мысль хорошая, но с т.з. обучения я бы все же сначала писал все ручками что бы понять как оно воркает.

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

Если я пишу очередной вьювер результатов/форточку для запуска расчетов студентам

Омг, речь не любителя, но «профессионала»(с) Если, да кабы...

И ТС тоже не пишет, что характерно.

Откуда дровишки-то? Почему ТСу не может быть тупоинтересно, как писать гуй «не на питоне»?

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

Аргументы кончились? Ок. Щас тебе новый собеседник накидает «контрпримеров», как ты любишь. Потому что не может быть всем хорошо, что хорошо для тебя лично... и твоих студентов :)

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

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

Вот. Всё это есть во всяких там Qt или Juce. Можно ручками, можно формошлёпкой. Стоит только разобраться, а дальше выбирай, что хочешь. Просто ТС'у скорее всего будет легче выучить концепцию сигналов и слотов и методы построения Qt'шных приложений (две первые главы из этой книги) и уже начать строить GUI-приложение, чем изучать новый, незнакомый язык, а потом байдинг к нему (Python + Tkiner/PyQt). Оправдано ли это? Время покажет.

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

Ну, от изучения нового ЯП еще никому хуже не становилось (если это не хаскель;-)).

Скромный личный опыт показывает, что для довольно широкого круга задач связка питон (для всего что может рабоать медленно)-С++(для того что должно работать быстро) гораздо удобнее чем просто С++.

А так, если говорить про путь наименьшего сопростивления для ТС, то конечно Вы правы.

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

гораздо удобнее чем просто С++.

Вы видимо Qt не тыкали :)
Оно образует по сути свой собственный язык, далеко выходящий за пределы «классического C++» с некоторыми добавленными ключевыми словами и прочим синтаксическим сахаром. Прежде чем скормиться g++, код проходит через различные компиляторы (rcc, moc, uic). Многим это нравится, многим — нет. Но программы писать можно весьма быстро.

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

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

Потрясающий комментарий

Сохраню как пример лёгкой степени дебильности, спасибо.

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

Tkinter, Tcl/Tk, который выглядит так, будто программу разрабатывал 60-летний академик, поросший молью;

Бро, не гони на Tk. Если нужно быстрана запилить гуй на любом скрипто-говне - ничего лучше Tk ещё не запилили

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

Скорость формошлёпки в каком-нибудь Qt Creator или Qt Designer в некоторых местах обгоняет даже Delphi

Это пока он с ModelView не столкнется, а после этого события будет некислая просадка скорости формошлепства

Stil ★★★★★
()

Что за гуемосятину тут развели?

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

Вы видимо Qt не тыкали :)

Я знаю что такое Qt. Более того, в незапамяныте времена я много интерфейсов кодил на билдере. И в какой то момент из всяких самописных примочек (что бы мышкой по формошлепке не возить) выросло у меня нечто tkintero-образное, но на шаблонах и очень специфичное. Потом я перешел на линукс, потом открыл для себя tcltk/tkinter и понял что я с-но гря сделал;-)

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

Бро, не гони на Tk. Если нужно быстрана запилить гуй на любом скрипто-говне - ничего лучше Tk ещё не запилили

Да знаю я. Это же шутка, вброс. К Tk даже адекватные темы есть. Но сурьёзные юзер-ориентированные приложения на Tk всё равно особо не попишешь.

Кстати, на заре моего знакомства с GNU/Linux я помню такой способ делать гуй на скрипто-говне (bash/sh): http://habrahabr.ru/post/212013/#comment_7296383

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

Да есть готовый комплект таких фиговин под баш. Забыл уже как называются... диалоги какие то.

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

Но сурьёзные юзер-ориентированные приложения на Tk всё равно особо не попишешь.

ModelSim?

ebantrop
()

Рано тебе GUI. Научись писать TUI приложения.

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

Думаю, с современными тулкитами, что Qt, что GTK+ с соответствующими привязками к языку, сам язык вообще не имеет значения. Все-равно большинство критичных ко времени операций исполняет сам тулкит. Скорость разработки так же сомнительна. Потому что на С++ там даже указателями рулить нужно минимально, если вообще нужно. GTK например рулит памятью чуть ли не сама в большинстве случаев, через подсчет ссылок. У Qt тоже такие замашки прослеживаются.

Итого, это вам не чистый XLib, где там мозг указателями сломаешь, умом поедешь, пока все разрулишь. Так что, думаю, язык уже не важен с современным Гуем.

Дополнение: У Qt есть еще QtScript, на котором самое то - писать гуй.

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

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

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

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

Нафиг питон вообще?

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

Интерфейс специфичен для задачи. Вот например интерфейс для числодробилки - задать пачку параметров ( изменить дефольные), запустить расчет, потом запустить вьювер результатов.

В итоге задание выглядит так - для каждого параметра указываешь название и методы чтения/записи (где он лежит). Можно это как то структурировать, что бы разнести по вкладкам. Дальше прослойка делает все сама. Более лаконичного способа не существует как вы понимаете:-)

На плюсах это можно сделать (но нетривиально), на питоне такая штука делается гораздо проще.

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

например питон с кучей всяких библиотек, от Tkinter до PyQtх.

тонко

next_time ★★★★★
()

по сабжу — лучшая графическая(и не только) библиотека на С++ — это Qt, можно посмотреть в сторону Разработка графических приложений на c++ (комментарий) (то есть gtkmm и т.д., а не всякие заслуженно обстёбанные питончики и прочие поделки).

но выбор Qt обусловлен тем, что в ex-USSR на него есть стойкий (хотя и не столь большой как хотелось бы) спрос на рынке труда. всякие питончики используются только как вспомогательные языки, в основном, их неплохо знать, но GUI на них никто в здравом уме не пишет и для профессии это не пригодится.

кроме того, поскольку, Qt + С++ имеет широкое распространение, ответы на непременно возникающие вопросы будет много легче нагугливать.

недостаток только 1 — Qt имеет свою особую, уличную, систему сборки, с которой периодически возникают проблемы.

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

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

как раз такой мутотни как гуйня — нет. потому что, фреймворк-то один и за пределы его возможностей, как ни старайся, не вылезешь. самое главное, что С++ для Qt — родной язык и чуть что нагуглить решение проблемы в случае плюсов будет проще, поэтому тут как раз наоборот, скорее питон будет существенно медленней по темпам разработки.

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

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

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