2008-09-16 3 views
1

Я разрабатываю графическое приложение для представления данных (а не игры, но реального приложения рабочей лошадки). Она должна быть кросс-платформенным, поэтому я выбрал:OPENGL Программирование пользовательского интерфейса

  • Python
  • OPENGL (нужно 3D, смешивание, текстуру и т.д.)
  • PyOpenGL
  • WX/pywx - оконные, диалоги и т.д.

Последний компонент - WX - возникает вопрос. Я могу собрать очень приятное приложение (прототипы выглядят скользкими), но когда мне нужно взаимодействовать с пользователем, чтобы задавать вопросы, введите ввод, я должен использовать WX. Это заставляет приложение выглядеть несовместимо с традиционным пользовательским интерфейсом с традиционными диалогами и комбо и текстовым вводом поверх полноэкранного 3D-приложения с смешиванием, плавным движением, текстурами и т. Д.

Кто-нибудь разработал графический интерфейс с использованием OpenGL и python? Можете ли вы поделиться со мной инструментами и/или трюками, которые вы использовали? Мне нужны комбо, ввод текста, кнопки, радио, кнопки выбора, древовидная структура.

Есть некоторые инструментальные средства там, но они либо неполные, либо старые и не подкрепленные. Отличным примером является pyUI (http://pyui.sourceforge.net/) - выглядит скользким, но нетронутым годами.

+0

. Если у вас есть возможность опубликовать снимок экрана, чтобы выделить несоответствия, о которых вы говорите, в противном случае я согласен с Mike F, поскольку реализация GUI - это боль в шея. – thing2k 2008-09-17 16:03:12

ответ

1

Возможно, вы захотите посмотреть на Clutter, это выглядит довольно круто. Я еще не использовал его, но я намерен в предстоящем личном проекте.

12

Это не ответ, скорее просьба: Пожалуйста, не делайте этого.

Ваши переопределенные виджеты не будут иметь разного рода функциональность, которую пользователи пропустят. Будут ли ваши текстовые окна поддержки drag'n'drop? Копировать вставить? Скрипты справа налево? Drag-выбрать? Двойной щелчок-выбрать? Будут ли все эти механизмы соответствовать национальным соглашениям каждой поддерживаемой вами платформы?

С Wx ваши виджеты могут выглядеть несовместимыми с приложением, но по крайней мере они будут выглядеть совместимыми с ОС, что также важно. И что еще более важно, они будут делать то, что ожидают пользователи.

(изменить) Три должности и -3 балла? Вверните этот логово карма-шлюх. Оригинальный плакат: я реализовал базовый набор виджетов в OpenGL (для пользовательского интерфейса игры), и это был бесконечный кошмар работы.

+1

Я думаю, что ваш ответ действительно часть времени, но не всегда. Если приложение является полноэкранным GL-приложением, которое пользователь будет использовать почти исключительно, пользователь может не ожидать стандартного поведения на рабочем столе. Подумайте о консольных играх (ps3, xbox и т. Д.): У них нет традиционных графических интерфейсов, и никто не жалуется. Я согласен с тем, что в целом настольные приложения должны иметь графические интерфейсы рабочего стола, но исключения могут быть сделаны и сейчас. – 2010-11-05 22:08:07

1

Попробуйте Qt вместо wx.

QT - это кроссплатформенная платформа, и вы можете легко стилизовать вещи, используя CSS. Он очень хорошо документирован и имеет отличные привязки python. На самом деле, я использую документацию на C++, а не документацию PyQT.

3

Python + Qt + OpenGL - Я уверен, что любое приложение может быть написано быстрее и лучше, используя python. QT4 является кросс-платформенным, красивым, реализует все, что вам нужно от виджетов (доступность и т. Д.), И ... он интегрируется с OpenGL. Это означает, что вы можете просто иметь виджет, который является видовым окном, чтобы открыть материал GG, который вы визуализируете в своем коде.

Другое 3D-решение, которое будет охватывать большинство вещей, но не так, чтобы пользовательский интерфейс расширил Blender3D с помощью скрипта python. Он имеет 3-мерные возможности и рендеринг, вы все равно скрипте на python, и это будет кросс-платформенный - и вы получите инструменты более высокого уровня для того, чтобы волноваться с 3D-вещами, чем только для openGL. Существуют очевидные недостатки, в основном с точки зрения пользовательского интерфейса по сравнению с PyQT, но это можно сделать.

1

Как wx, так и QT делают отличную работу по созданию приложения, которое соответствует внешнему виду ОС. Также можно implment все виджеты себя непосредственно в openg, это Slashdot почтовые списки некоторых из множества доступных

http://ask.slashdot.org/askslashdot/02/12/24/1813219.shtml?tid=156 лисицы, вероятно, наиболее развитых, но выглядит как окна на всех платформах.

7

В последних выпусках QT вы можете нарисовать виджеты в ваш контекст OpenGL, если вы действительно хотите сделать что-то подобное. В противном случае существует CEGui, который используется в некоторых игровых движках.

Внедрение GUI Виджеты сами, если вы не хотите назидать себя, - это трата вашего времени, если вы не удовлетворены самыми элементарными внешними и функциональными возможностями.

1

Blender - единственное приложение, которое я знаю с графическим интерфейсом, полностью написанным в OpenGL ... Единственная проблема - это на C++.

Я разработчик Python, как хорошо, но я просто получаю в использовании OGL

честно, я не думаю, что есть какие-либо наборы инструментов для разработки графического интерфейса в OGL ...

в Blender разработчики дают мне оборотный документацию вместо прямой помощи ... , но я дам вам знать, что я выясняю;)

EDIT: вот немного документации по функциям PyOpenGL в: http://pyopengl.sourceforge.net/documentation/manual/reference-GLUT.html

-1

мой друг.
Я считаю, что я нашел свой ответ;)
http://glinter.sourceforge.net/

Я havn't еще пробовал, но мне кажется весьма перспективным. (я буду править это, если он не работает)

EDIT:
эх ...
использует Tk, PMW и WX ...
(не совсем то, что я хочу)

вы можете дать CVS скачать попробовать ...
(нет никаких выпустили пакетов, но CVS работает)

0

«cegui» является хорошим выбором есть также редактор графического интерфейса под названием «Ceed» для генерации макет xml-файлов. cegui также имеет привязки python и хорошо документирован и используется во многих игровых движках.

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