gtkmm для настольного приложения

Это хорошая идея использовать набор инструментов gtkmm gui для некоторых клиентских приложений для настольных компьютеров?

Является ли этот инструментарий стабильным и достаточно ли документации в Интернете?


person Yoh0xFF    schedule 25.03.2013    source источник
comment
да, это официально поддерживаемая привязка (gtk.org/language-bindings.php) . inkscape и ardor — известные приложения, написанные на gtkmm, и с помощью Glade (и т. е. PyGTK) вы можете быстро создать прототип своего приложения.   -  person pce    schedule 25.03.2013


Ответы (3)


Я начал два месяца назад с gtkmm. На самом деле я портирую приложение tcl/tk, и мне очень сложно заставить его работать. Единственная полезная документация, которую я нашел, это https://developer.gnome.org/gtkmm-tutorial/ 3.4/

Но многие вещи описанные в мануале не работают! На самом деле я столкнулся с проблемой при переопределении обработчиков сигналов, которые должны работать, но не работают. Возможно, вы заглянете в [email protected], чтобы узнать, с какими проблемами вы, возможно, столкнетесь :-)

Документы, полученные из ввода doxygen, кажутся мне бесполезными, потому что функции в основном не описаны, а имена параметров или часто не очень понятны для меня.

По сравнению с tcl/tk интерфейс выглядит несогласованным. Иногда параметр должен быть представлен текстом, иногда указателем, а иногда и самим собственным значением. Особенно меню очень «загадочные» со строковой конфигурацией. Необходимость иметь параметры в виде текста очень неудобна! Вы должны преобразовать параметр с помощью ostrstream в текст и иногда самостоятельно анализировать параметры из текста в реальные значения.

Я решил дать gtk+ шанс на существование интерфейса c++. Я подумал, что было бы полезно получать ошибки во время компиляции, а не при запуске приложения, как с tcl/tk. Но это не всегда так с gtkmm. С gtkmm вы также можете столкнуться с ошибками во время выполнения, потому что все строковые параметры будут проанализированы во время выполнения! Это делает вещи подверженными ошибкам!

Может быть, я начну снова и дам Qt шанс. Но при первом взгляде на него видно, что так не лучше :-)

Написание приложения с графическим интерфейсом по-прежнему очень утомительная работа!

person Klaus    schedule 29.03.2013
comment
Вы рекомендуете использовать gtk+ вместо gtkmm? - person Yoh0xFF; 02.04.2013
comment
Gtk+ сам по себе является объектно-ориентированным кодом c, а gtkmm является всего лишь оболочкой над библиотекой c. Я думаю, что на самом деле нет причин использовать gtk+ direct. Наследование от классов, закодированных на языке C, выглядит уродливо, а написать хороший объектно-ориентированный код на языке C намного сложнее, чем на языке C++. Поэтому мой совет — используйте gtkmm. Но иногда было полезно заглянуть в интерфейс c, чтобы понять значение обернутого кода. - person Klaus; 02.04.2013
comment
QT имеет собственную инфраструктуру. Компилятор метаобъектов QT и qmake являются примерами того, почему я сначала не стал использовать QT (однажды я написал приложение QT с системным треем, вкладками, виджетом таблицы и подключением к базе данных, это было быстро и легко, но я бы предпочел C /GTK+ для того же проекта). Написание графического интерфейса с нуля также является забавой, поэтому вам нужен только SDL или OpenGL и вы можете писать/рисовать свои собственные виджеты и обработчики событий. Если у вас есть проблемы с вашими виджетами или UTF-8 (шрифтами) или вам надоело изобретать велосипед, вы можете вернуться к GTK+ или QT. - person pce; 02.04.2013

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

Но я также использовал C/GTK+ и C++/Qt, и я считаю, что при использовании Gtkmm у вас возникает ощущение, что исходный инструментарий предназначался для использования в C, и портирование на C++ нормально, но во многих случаях вы чувствуете, что функции C++ могли бы использовались лучше.

Для сравнения:

Если вам нужно выбирать между Gtk и Gtkmm, выберите Gtkmm, даже если вы можете застрять в какой-то недостаточно документированной или поддерживаемой функции. В конце концов вам всегда удается найти решение (вы можете проверить исходный код), а C++ намного лучше, чем c.

Если вам нужно выбирать между Gtkmm и Qt, выберите Qt. Между ними ОГРОМНАЯ пропасть. Не только в самом инструментарии, но и в документации и всех других классах, которые вам нужны при написании приложения.

person luca    schedule 21.04.2015

gtkmm — это официально поддерживаемая привязка GTK (gtk.org/language-bindings.php).

«inkscape» и «ardour» — известные приложения, написанные на gtkmm.

Привязки, которые являются официальными привязками GNOME, следуют графику выпуска GNOME, который гарантирует стабильность API и выпуски по времени.

Если вы хотите написать свое приложение на C, используйте GTK+ (и GLib).

Ссылку на документацию можно найти по адресу http://www.gtkmm.org/ (https://developer.gnome.org/gtkmm-tutorial/).

С помощью Glade (и, например, PyGTK) вы можете быстро создать прототип своего приложения. Создать графический интерфейс с помощью Glade несложно, а полученный пользовательский интерфейс представляет собой файл xml, который не привязан к языку программирования.

person pce    schedule 25.03.2013