Войти
ПрограммированиеСтатьиГрафика

OpenGL на Qt 4. Это просто! (часть 1) (4 стр)

Автор:

main.cpp

#include <QApplication> 
#include "scene3D.h" 

int main(int argc, char** argv) 
{ 
   QApplication app(argc, argv); // создаём приложение
                                 // инициализация оконной системы

   Scene3D scene1; // создаём виджет класса Scene3D
   scene1.setWindowTitle("lecture1"); // название окна   
   scene1.resize(500, 500);  // размеры (nWidth, nHeight) окна  
   scene1.show(); // изобразить виджет
   // scene1.showFullScreen();
   // scene1.showMaximized();  
 
   return app.exec();
} 

В главной функции main() мы создаём объект графического интерфейса класса QApplication, который осуществляет контроль и управление приложением. Потом создаём виджет (объект верхнего уровня в иерархии объектов, т.к. не заданы никакие аргументы и берётся значение по умолчанию) нашего класса Scene3D, задаём его отображаемое название и размеры (nWidth, nHeight) и указываем, во-первых, что его нужно изобразить и, во-вторых, при необходимости как его изобразить. Вызов функции exec(), принадлежащей классу QApplication, производит запуск приложения и сопутствующий контроль.

Файл-проект lecture1.pro содержит следующие параметры:

TEMPLATE = app
— элемент-шаблон с одним параметром app, который означает, что компилируется приложение. Например, параметр lib соответствует динамической библиотеке;
# Input
— символ # означает комментарий;
HEADERS += scene3D.h
SOURCES += main.cpp scene3D.cpp
— заголовочные и исходные файлы приложения. Причем для элементов со многими параметрами используется символ +=, а затем идёт список параметров через пробел, а для элементов с одним параметром, как вы уже заметили, используется символ =. Подробности о файле-проекте смотрите в Qt Assistant.

В файле-проекте .pro необходимо добавить следующую строку:

QT += opengl
для сборки приложения совместно с модулем QtOpenGL и системной библиотекой OpenGL. Иначе при компиляции команды OpenGL вызовут ошибки как неизвестные функции.

Замечу, что если бы вы использовали API Windows для создания GUI, то код получился бы на порядоки больше и на порядки сложнее для понимания. Вы бы потратили колоссальное количество времени, чтобы его освоить и в нём разобраться, при этом ваш код оказался бы полностью бесполезным в Linux и MacOS. Чего нельзя сказать об использовании кроссплатформенной библиотеки Qt. Например, вот как будет выглядеть приложение, откомпилированное на openSUSE 11.2 (Linux), без изменения кода!

lecture1linux | OpenGL на Qt 4. Это просто! (часть 1)

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

Литература


(в порядке ранжирования, т.е. 1) лучше чем 2) и т.д.)

Для тех, кто незнаком с C++, рекомендую вам следующие книги: 
1) Аверкин В.П., Бобровский А.И., Веснич В.В., Радушинский В.Ф., Хомоненко А.Д. «Программирование на C++» (очень хорошая книга для начинающих)
2) Дейтел Х., Дейтел П. «Как прогаммировать на C++» (ОЧЕНЬ БОЛЬШАЯ книга, в ней много всего полезного)

Литература по OpenGL:
1) Райт Р.С.-мл., Липчак Б. «OpenGL. Суперкнига» (отличная книга по OpenGL)

Литература по Qt 4:
1) Qt Assistant и Qt Examples and Demos (помощь и много нужных примеров, поставляются вместе с Qt)
2) Бланшет Ж., Саммерфилд М. «QT 4: программирование GUI на C++»
3) Шлее М. «Qt4. Профессиональное программирование на C++»

Список частей:

  • OpenGL на Qt 4. Это просто! (часть 1)
  • OpenGL на Qt 4. Это просто! (часть 2)
  • Страницы: 1 2 3 4

    #3D, #графика, #OpenGL, #Qt, #Qt4

    19 января 2011 (Обновление: 2 янв. 2013)

    Комментарии [98]