Подтвердить что ты не робот

Библиотека Cross Platform C для приложений GUI?

Бесплатно, легко учиться/использовать, библиотеку Cross Platform C для приложений GUI? Я ищу Qt?

Бонусный вопрос: могу ли я начать с указанной библиотеки/инструментария на Mac, а затем перекомпилировать на ПК /Linux?

Супер бонусный вопрос: ссылка на учебник и/или загрузку указанной библиотеки.

По правде говоря, я в процессе догнать семью C (исходя из веб-разработки - XHTML/PHP/MySQL), чтобы изучить развитие iPhone.

Я понимаю, что C не С++ или ObjectiveC, но я хочу, чтобы кривая обучения была максимально простой. Не слишком торопитесь, но я также ищу хорошие книги и веб-сайты для начинающих. Я нашел это до сих пор.

Я пытаюсь убить много птиц одним камнем здесь. Я не понимаю, что существуют расширения для платформы, но я постараюсь избежать их для целей переноса Идея состоит в том, что я хочу написать код на одной машине и просто компилировать три раза. (Mac/Win/Linux) Если Objective C будет компилироваться в Windows и Linux, а также в OS X, то это хорошо. Если я должен использовать С++, это тоже отлично.

4b9b3361

Ответ 1

Если вы ищете библиотеку С++, то Qt в основном делает то, что вы ищете. Если вы хотите придерживаться чистого C, то Qt не является опцией.

В качестве рамки C вы можете использовать GTK +, он работает на Linux, Windows и OS X.

Ответ 2

Взгляните на IUP Toolkit. Он написан в основном на языке C и также легко связан с Lua.

Ответ 3

Qt - библиотека С++. Другие библиотеки кроссплатформ, которые вы можете рассмотреть, wxWidgets (С++) и GTK (C).

Все три представленные библиотеки полностью перекрестные. Вы также можете посмотреть Tcl/Tk, но это инструментарий:).

Ответ 4

Другим вариантом является Tk, который представляет собой графическую библиотеку, написанную на C. Он поставляется с Tcl, языком сценариев, также написанным на C. Они были разработаны с нуля, чтобы быть встроенными в программы C.

Ответ 5

Чтобы заполнить этот пост, Allegro должен быть здесь =)

http://www.talula.demon.co.uk/allegro/ Allegro Game Library, имеет множество графических функций и базовую библиотеку графического интерфейса.

И явная библиотека GUI (и очень простая) на основе Allegro

http://cgui.sourceforge.net/index.html

Обе мультиплатформенные

Ответ 6

То, что я рассмотрел, было EFL, поскольку оно довольно быстрое, простое, маленькое, но мощное. Я бы рекомендовал погрузиться в Elementary, простейший набор инструментов GUI, а затем, после того как вам станет удобно, перейдите к EDJE, что не так просто, но гораздо более мощно.

Ответ 7

Вы отметили этот вопрос о , который является тегом, за которым я следую. Тем не менее, вы также спрашиваете о c программирование.

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

Тем не менее я бы настоятельно предложил расспросить, почему ваш проект должен быть в C. Существует множество преимуществ для С++, и идея о том, что C выполняет внутренне лучше, в основном является мифом. Для некоторых жестких данных об этом, проверьте Bjarne Stroustrup Изучение С++ как нового языка.

Если вы должны придерживаться C, тогда всегда есть GTK. Основной API GTK + - это C, но привязки также существуют для С++, называемого GTKmm. Я не большой поклонник этого с точки зрения дизайна, но исторически работал на рабочем столе Gnome (по умолчанию Ubuntu)... и Google выбрал его для своей версии Chrome для Linux. Таким образом, он имеет некоторое доверие и поддержку там.

Но обратите внимание, что Ubuntu выбирает Qt5 для реализации своей следующей версии "Unity" на рабочем столе:

https://askubuntu.com/questions/281092/why-is-canonical-choosing-qt-over-gtk-for-unitys-next-generation


EDIT: Вы добавили:

Если я должен использовать С++, это тоже прекрасно.

"Must" - сильное слово, но сравнения между С++/Qt и C/GTK практически нет. И последнее становится историческим.

Ответ 8

Взгляните на Ecore SDK. Он предлагает кросс-платформенный инструментарий GUI и дает вам eC, объектно-ориентированный язык, полученный из C (со всеми его функциями), который отлично подходит для создания графических интерфейсов.