Разработка приложения Qt + OpenGL в Eclipse - PullRequest
3 голосов
/ 03 июня 2009

Я запускаю проект C ++, используя OpenGL и Qt для пользовательского интерфейса в Eclipse. Я хотел бы создать пользовательский интерфейс, где часть окна содержит рамку для рендеринга OpenGL, а остальная часть будет содержать другие виджеты Qt, такие как кнопки и так далее.

Я раньше не использовал Qt или редактор GUI в Eclipse, и мне интересно, какой будет лучший подход? Должен ли я создавать пользовательский интерфейс с помощью ручного кодирования, или было бы проще использовать конструктор графического интерфейса eclipse - я быстро взглянул на это, и, похоже, встроенного виджета OpenGL нет.

Спасибо

Ответы [ 3 ]

7 голосов
/ 03 июня 2009

Если вы используете Qt Designer (который, я думаю, доступен через Eclipse Integration), вы можете поместить базовый QWidget в макет, а затем «продвинуть» этот виджет в QGLWidget. Для этого:

  1. Добавьте QWidget в нужное место в макете
  2. Щелкните правой кнопкой мыши на виджете
  3. Выберите «Повышать до»
  4. Введите QGLWidget в качестве имени класса и заголовка
  5. Хит Добавить
  6. Выберите QGLWidget из списка продвигаемых виджетов в верхней части диалогового окна.
  7. Удар Повышение

Таким образом, вам не нужно проходить маршрут-заполнитель и создавать дополнительный слой.

0 голосов
/ 03 июня 2009

У меня была такая же проблема при использовании Qt Designer. Я использовал простой фрейм в качестве заполнителя для виджета OpenGL, затем в конструкторе главного окна я создал виджет OpenGL вручную и назначил его фрейму-заполнителю (как дочерний элемент).

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

0 голосов
/ 03 июня 2009

Почему вы не используете Qt Eclipse Integration ? Он работает безупречно, позволяет редактировать пользовательские интерфейсы прямо из Eclipse.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...