2011-01-20 1 views
3

Возможно, мне понадобится построить графический интерфейс GTK с использованием C# и Mono. Если я правильно понимаю, это означает, что у меня есть 3 варианта:GUI-здание с GTK #

  • Напишите код C#, чтобы вызвать классы оболочки GTK #. GUI «в коде».

  • Используйте дизайнер MonoDevelop GUI. Это создает интерфейс, используя статическую разметку. Кажется, я просто XML.

  • Используйте Glade и libglade для создания графического интерфейса и загрузки его во время выполнения.

У меня есть небольшой опыт работы с графическим редактором MonoDevelop. Это хорошо, но имеет несколько грубых краев. Я могу себе представить, что нужно в какой-то момент отредактировать статистическую разметку.

Я также использовал Поляну в прошлом с Python ...

Оба эти проекта были экспериментальный характер только, так что я бы очень хотел услышать от кого-то, что боролся этот бой раньше. Каковы преимущества и недостатки каждого?

Наконец, было бы неплохо, если бы развитие этого проекта может состояться в Windows, Linux и Mac OS X.

ответ

1

В течение старых дней, дизайнер MonoDevelop GTK было ужасно. Сегодня это очень надежное (не полностью, но очень твердое) решение для создания богатых графических интерфейсов. Это лучший вариант для всех платформ. Построение GUI через код может стать довольно болезненным. С другой стороны, использование Glade - это радость, но у вас есть некоторые недостатки. Эти недостатки касаются некоторых ограниченных возможностей ваших элементов управления во время выполнения, таких как установка Opacity на windows и т. Д., Потому что вам нужно загрузить файлы XML Glade с пространством имен Glade. Конечно, всегда есть возможность импортировать файлы Glade в ваш проект, но он никогда не работал для меня.

+0

Я собираюсь отправить MonoDevelop еще раз. У меня это есть на моих Mac, Windows и Linux. В Mac OS X я заметил, что у него довольно много проблем. Я надеюсь, что это не показатель GTK + на OS X вообще ... – Nate

+0

Просто убедитесь, что у вас установлена ​​последняя версия. –

+0

Вам больше не нужно загружать файлы Glade с помощью libglade (то есть пространства имен Glade). Функциональность встроена в GTK (как «Gtk.Builder»). – ptomato