2013-03-25 3 views
1

Полезно ли использовать gtkmm gui toolkit для какого-либо настольного клиентского приложения?gtkmm для настольных приложений

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

+2

Да, это официальное поддерживающее связывание (http://www.gtk.org/language-bindings.php). «inkscape» и «ardor» - заметные приложения, написанные в gtkmm и с Glade (и т. п. PyGTK), вы можете быстро прототипировать свое приложение. – pce

ответ

1

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

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

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

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

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

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

Написание приложения gui по-прежнему является действительно раздражающей работой!

+0

Рекомендуем ли вы использовать gtk + вместо gtkmm? – Yoh0xFF

+0

Gtk + сам по себе ориентирован на объект c, а gtkmm - только оболочка над библиотекой c. Я думаю, что нет никакой причины использовать gtk + direct. Вывод из c закодированных классов выглядит уродливым, и писать хороший ориентированный на объект код в c намного сложнее, чем в C++. Поэтому * мой * совет - использовать gtkmm. Но иногда было полезно посмотреть в интерфейсе c, чтобы получить смысл обернутого кода. – Klaus

+0

Спасибо за ответ. – Yoh0xFF

1

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

«Inkscape» и «запал» являются известными приложениями, написанных на gtkmm

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

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

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

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

2

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

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

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

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

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

Смежные вопросы