LINUX.ORG.RU

Легкий тулкит для GUI


0

0

Для учебы все-таки и QT, и GTK избыточны. Есть ли какая еще кроссплатформенная GUI библиотека попроще для С/С++/D? Ну чтобы можно было быстро разобраться по примерам и больше не заморачиваться с GUI, да и не таскать мегабайты ненужного кода.

anonymous

FLTK - Fast Light Toolkit

FOX - The FOX C++ GUI Toolkit

Насчет D - что то из них по-моему уже там есть

AlexLorovitch
()

Xlib / WinAPI

anonymous
()

Только fltk. Статически слинкованная программка с fltk4d весит чуть больше мегабайта. Код предельно простой и понятный.

C++: http://fltk.org/

D: http://dronten.googlepages.com/fltk4d

По поводу установки для D. Советую использовать dsss. Создаешь минимальный конфиг в каталоге с fltk4d. И делаешь dsss build; dsss install Вот мой конфиг:

-----------начало dsss.conf----------

[fltk4d]

-----------конец dsss.conf----------

Если будет ругаться на неправильные pragma идешь в fltk4d/all.d и меняешь в конце файла все pragma (link, xxx); на pragma (link, "xxx");

Не забудь скачать спец. либу fltk4d с того же сайта. Она и для C++ и для D годится.

Если что-то не получится, пиши cy (at) ngs ru Вышлю все в сборе DMD+DSSS+Tango+Tangobos+Derelict+fltk4d+Mango

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

> Ну так человек же просил - не таскать с собой мегабайты ненужного кода :)

А где в Qt ненужный код? Хочу на него взглянуть.

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

> А где в Qt ненужный код? Хочу на него взглянуть.

fltk в несколько раз легче, чем Qt. Для изучения достаточно и того и другого. Из этого следует что в Qt есть ненужный код.

Человек же не собирается писать свой вариант KDE.

naryl ★★★★★
()

wxWidgets (ранее известная как wxWindows) — это кросс-платформенная библиотека инструментов с открытым исходным кодом для построения графического интерфейса пользователя (GUI). Wikipedia.org (C)

asc
()
Ответ на: комментарий от gaa

>Ещё есть такая интересная вещь: http://cpptk.sourceforge.net/ , правда не знаю, насколько оно живое

живое, но не слишком удобное - при всём уважении к автору. для сколь-нибудь серьёзного применения удобней либо писать напрямую через C API, либо вручную инициализировать Tk через C++/Tcl (что, в общем-то, несложно). а вообще присоединяюсь к рекоммендации

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

>Только fltk. Статически слинкованная программка с fltk4d весит чуть больше мегабайта. Код предельно простой и понятный.

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

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

> в принципе для поставленной задачи имхо совершенно равноправные варианты

У варианта с Tk есть один недостаток: D/Tk сейчас в pre-alpha и видимо там и останется. Если бы не требование про язык, то они были бы равноправными.

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

>Мне она показалась еще страшнее, чем gtk, но это ИМХО.

Зато ИМХО попроще GTK и Xlib будет. А python и wxWidget да еще ко всему этому идэешник Boa Constructor, в общем что еще для счастья надо?

asc
()
Ответ на: комментарий от naryl

>У варианта с Tk есть один недостаток: D/Tk сейчас в pre-alpha и видимо там и останется. Если бы не требование про язык, то они были бы равноправными

http://wiki.tcl.tk/6261

здесь о том, как сращивается D с Tcl C API. ничего сложно в общем-то нет. получив доступ к API, получаешь и доступ ко всему Tk - просто с процедурным интерфейсом. в случае FLTK4D интерфейс будет обьектно-ориентированным и, гм, более привычным. но в общем-то дело вкуса :)

а в принципе - да, согласен с аргументами, был неправ :)

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

> http://wiki.tcl.tk/6261

Updated 2006-11-20

Но если есть Tcl C API, считай есть и Tcl D API. Нужно просто перечислить нужные функции в extern(C) {...}

naryl ★★★★★
()

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

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

> fltk в несколько раз легче, чем Qt. Для изучения достаточно и того и другого. Из этого следует что в Qt есть ненужный код.

В каком смысле "легче"? QtCore+QtGui по размерам больше? И если да, то насколько? И не пропорциональна ли эта разница отличию в функционале?

troorl ★★
()

o-O O-o O-O Не ожидал столько ответов, вот уж спасибо! Есть еще требование, правда очевидное - некрофилией заниматься не хочу, проект должен быть активным. Tcl поэтому не подходит. У FOX тулкита API не понравился, да и серьезных приложений на нем нет.

FLTK хороша, и доков много, и API удобный, но блин в стабильной версии нет некоторых контролов - дерево, грид. Попробую еще 2.х.х версии.

wxWidgets - тяжеловат, но там все контролы на месте. Еще откопал GUI дизайнер wxDev-C++, но для пары кнопок это уже излишество.

Собственно, я хочу вытеснить Delphi, C++ Builder и прочую проприетарщину из родного ВУЗа. Вот и нужны адекватные замены. Смешно же, ради быстрого кидания нескольких контролов юзать пиратский софт на тысячи долларов. Ну и D как замена устаревшим С++/Object Pascal.

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

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

И студентам польза.

Правда большой минус для Qt - несовместимость ее лицензии с GPL

W0wik
()

FLTK. Потому что дешево и сердито, а еще для него есть 3 видео обучалки (http://seriss.com/people/erco/fltk-videos/) , так что если английский хотя бы на среднем уровне, врубиться можно за пару часов, даже не читая мануала! Правда ихний конструктор GUI Fluid несколько убог, но если программировать в стиле "набросал GUI -> написал обработчики -> больше Fluid не трогаем, элементы добавляем/изменяем от руки", то ничего страшного не должно случиться.

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

> Собственно, я хочу вытеснить Delphi, C++ Builder и прочую проприетарщину из родного ВУЗа.

Anjuta + glade-plugin и Eclipse + qt-designer.

+FAQ: How to holywar about your toolkit.

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

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

Тикль живее всех живых. Недавно ж в новостях было, что вышла версия 8.5! Так что не надо списывать его в утиль раньше времени.

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

>Правда большой минус для Qt - несовместимость ее лицензии с GPL

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

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

> И в чем же заключается несовместимость?

Во-первых, никаких доработок со стороны сообщества, остающихся под копирайтом автора. Во-вторых, полная несовместимость с GPLv3 из-за кросслицензирования под GPLv2.

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

> Ты ещё qt и winforms не видел.

Winforms видел. gtk показалась страшнее. Причина скорее всего в том, что я просто привык к ООП.

> D как замена устаревшим С++/Object Pascal.

Готов поспособствовать. Будут вопросы пишите на cy (at) ngs (dot) ru. (А Object Pascal даже в моей родной школе 7 лет назад перестали преподавать)

> в стабильной версии нет некоторых контролов - дерево, грид

Во первых, свои контролы для fltk написать не так уж и сложно, во вторых... Дерево и грид есть. Примеры: http://dronten.googlepages.com/fltk4d_examples.html

> лучше всеже посмотреть в сторону Qt

D community будет очень благодарно Вам, если Вы напишете Qt C и Qt D. Или что-то вроде Qt С уже есть?

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

>D community будет очень благодарно Вам, если Вы напишете Qt C и Qt D.

Звиняйте, но язык D я считаю очередным велосипедом и полагаю, что зря потрачу время пытаясь "скрестить бульдога с носорогом".

Qt C? Хочется посмотреть на нечто пострашнее GTK. гы

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

(Истина была сказана насчет холивара...)

Хорошо. Ты считаешь, что D - очередной велосипед, но автор этого вопроса так не считает и GUI toolkit мы ищем ему, а не тебе.

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

>но автор этого вопроса так не считает и GUI toolkit мы ищем ему, а не тебе.

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

выбор языка программирования не должен исходить из принципа "С/С++ суксь, по этому мы пишем на D", а должен исходить из принципа, "нам этот язык подходит, потому что для него есть удобные средства разработки и необходимый пул библиотек для решения поставленных задач"

"что D - очередной велосипед" исключительно ИМХО. Холивар можете не продолжать...

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

> Холивар можете не продолжать...

Да он вроде и не начался. :)

Если я правильно понял, GUI toolkit и ЯП выбираются вовсе не для разработки продукта, а для учебы и обучения. Поэтому в данном случае выбор языка программирования вполне может предшествовать выбору библиотек.

Под все требования подходит только fltk4d и fltk.

Условно подходят: DUIT(только D, ОО обертка для GTK, alpha), Qt(Только С++, тяжесть), Tk(только C/C++), wxD, wxC и wxWidgets(wxD - alpha, ИМХО достаточно страшные и тяжелые), DFL и Winforms(тяжелые, Windows-only), SWT и DWT(только D/Java, тяжелые, DWT - alpha).

http://www.prowiki.org/wiki4d/wiki.cgi?GuiLibraries

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

Приведенный список вовсе не претендует на звание полного и исчерпывающего.

naryl ★★★★★
()

Мда, весело живут виндузятники - попробовал скомпилировать один open-source text editor, а оно на MFC, да еще древнем, для 6 студии. Вот это секс был прикручивать к новым версиям MFC! Страшнее этого ну ничего быть не может. :) Так что wxWidgets уже не смог шокировать 3-метровым экзешником, хотя нативные виджеты понравились, да и количество их на уровне. Но для учебы это не лучше дельфи, имхо. :( Как соответственно QT и GTK, бо в ВУЗе учат принципам, а не дрессируют.

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

Спасибо за ссылку, схожу, нарушив традиции. :) Английский на уровне "читаю хорошо, говорю и пишу неправильно", так что проблемы нет. С FLUID'ом с наскоку не разобрался, но он в принципе и не нужен - пять контролов можно нарисовать и вручную. Благо API либы ИМХО достаточно удобен.

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

Мда, зря учился на провокатора флейма - теперь разучиться не могу.:) Пора поставить тчк.

>GUI toolkit и ЯП выбираются вовсе не для разработки продукта, а для учебы и обучения.

Имянно, как говорил орел-меценат. Только добавить "серьезного продукта", бо все-таки не строение GUI-либ изучать, а общие принципы их использования. ЯП может и не быть мейнстримом, главное чтобы он не навязывал лишней работы, лишних деталей; D еще хорош документацией, в частности сравнением с другими ЯП - моя специальность системный программист, мне необходимо уметь выбрать адекватный инструмент.

В этом семестре будет курсовая - свой компилятор. Пока думаю выбрать D Обидно все же за язык, неужели С# лучше?..

naryl, я так понимаю, ты D-fan?:) Можешь подсказать IDE для D, хорошо бы кроссплатформенную? Вряд ли любители дельфи будут в восторге от vim.:) Эклипс - это компом колоть орехи получается, Dev-C++ мертв, VS - прибит к винде. Просто редактор + скрипт - дебаггер все-таки нужен, хотя я обхожусь. Пока буду асиливать FLTK, переводя паскалевсие лабы.

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

> Пока думаю выбрать D Обидно все же за язык, неужели С# лучше?..

У каждого есть свои преимущества. Даже у C#. :) Но есть и недостатки. Список различий между D и C# слишком велик, чтобы их сравнивать. Сам сейчас я использую только D и Java.

> Эклипс - это компом колоть орехи получается

Descent - самая навороченная среда разработки для D. Вчера и 3 дня назад вышли версии 0.5.1 и 0.5 соответственно. В следующем посте приведу changelog.

Кроме него можно посоветовать разве что Code::Blocks у которого появилась поддержка D около года назад, но не жди, что он поможет с чем-то еще кроме подсветки синтаксиса (у Descent есть подсветка семантики) и постройки приложений.

В качестве дебаггера под виндой используется Ddbg, под Линукс - ZeroBugs или GDB с соответствующими патчами. Ddbg и Gdb интегрируются в Descent и Code::Blocks. У ZeroBugs свой GUI.

Почти все можно взять на www.dsource.org

Почти все это рассчитано только на D1.

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

OK, ясно. Скачал, буду пробовать. Кстати, а есть ли форумы именно по D, в смысле русскоязычные? Писать правильно по-английски еще не научился. :( Может смогу как-нибудь помочь развитию D?

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

Из русскоязычных сайтов знаю только http://dprogramming.ru Появился он около месяца назад. Автора можно найти по почте. А вопросы лучше задавать прямо мне. Если не смогу ответить, перенаправлю в англоязычную новостную группу.

Много интересного можно найти по этим ссылкам:

http://dsource.org - D open-source repository

http://digitalmars.com/d - спецификация языка и Phobos'а

http://dprogramming.com - Entice - WYSIWYG GUI designer и DFL. Пока Windows-only

http://www.prowiki.org/wiki4d/wiki.cgi?FrontPage - Куча полезной информации.

http://rosettacode.org/wiki/Main_Page - решение простых задачек на разных ЯП.

Рекомендую также подписаться на nntp://news.digitalmars.com/digitalmars.D.announce

З.Ы. Можно сэкономить кучу времени если использовать D Shared Software System (DSSS) - http://dsource.org/projects/dsss

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

D - это быдлоподелка в стиле "очередной, подающий надежду язык".

Юзайте Java/.NET/Mono и не выделывайтесь.

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

0_0 Java/.NET/Mono???

Приведите доказательства в поддержку своего высказывания. Предлагаю для холивара выделить отдельную тему на форуме.

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