#include "mainwindow.h" //============================================================================================= // Constructor of the main window // Create window properties, menu etc ... //============================================================================================= MainWindow::MainWindow(QWidget *parent,int w, int h) : QMainWindow(parent) { // Set the window size this->resize(w,h); this->setWindowTitle("Object viewer"); // Create a layout in the main window centralWidget = new QWidget(this); gridLayoutWidget = new QWidget(centralWidget); gridLayoutWidget->setGeometry(QRect(0, 0, this->width(), this->height())); gridLayout = new QGridLayout(gridLayoutWidget); // Create the openGL display for the map Object_GL = new ObjectOpenGL(gridLayoutWidget); Object_GL->setObjectName(QString::fromUtf8("ObjectOpenGL")); Object_GL->setGeometry(QRect(0, 0, this->width(), this->height())); // Insert the Open Gl display into the layout gridLayout->addWidget(Object_GL, 0, 0, 1, 1); setCentralWidget(centralWidget); // Create the menubar QMenu *FileMenu = menuBar()->addMenu("&File"); FileMenu->addSeparator(); FileMenu->addAction("Quit", qApp, SLOT (quit()), QKeySequence(tr("Ctrl+Q"))); // Add menu items QMenu *ViewMenu = menuBar()->addMenu("&View"); ViewMenu->addAction("Front view", Object_GL, SLOT (FrontView()), QKeySequence(tr("Ctrl+f"))); ViewMenu->addAction("Rear view", Object_GL, SLOT (RearView()), QKeySequence(tr("Ctrl+e"))); ViewMenu->addAction("Left view", Object_GL, SLOT (LeftView()), QKeySequence(tr("Ctrl+l"))); ViewMenu->addAction("Right view", Object_GL, SLOT (RightView()), QKeySequence(tr("Ctrl+r"))); ViewMenu->addAction("Top view", Object_GL, SLOT (TopView()), QKeySequence(tr("Ctrl+t"))); ViewMenu->addAction("Bottom view", Object_GL, SLOT (BottomView()), QKeySequence(tr("Ctrl+b"))); FileMenu->addSeparator(); ViewMenu->addAction("Isometric", Object_GL, SLOT (IsometricView()), QKeySequence(tr("Ctrl+i"))); // Timer (used for repainting the GL Window every 50 ms) QTimer *timerDisplay = new QTimer(); timerDisplay->connect(timerDisplay, SIGNAL(timeout()),this, SLOT(onTimer_UpdateDisplay())); timerDisplay->start(50); } //============================================================================================= MainWindow::~MainWindow() {} //============================================================================================= // On resize event, the items in the window are resized //============================================================================================= void MainWindow::resizeEvent(QResizeEvent *) { Object_GL->resize(centralWidget->width(),centralWidget->height()); gridLayoutWidget->setGeometry(QRect(0, 0, centralWidget->width(), centralWidget->height())); } //============================================================================================= // Timer event : repain the Open Gl window //============================================================================================= void MainWindow::onTimer_UpdateDisplay() { Object_GL->updateGL(); } //=============================================================================================