Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[QT OPenGL] Pierwszy program

Ostatnio zmodyfikowano 2017-04-04 15:16
Autor Wiadomość
wojownik266
Temat założony przez niniejszego użytkownika
[QT OPenGL] Pierwszy program
» 2017-04-04 12:49:24
Chciałbym napisać taki sobie prosty program w qt z użyciem opengl. Ogl mam już opanowany tylko nie wiem jak zrobić coś takiego żeby okienko z wyświetlaną grafiką było wbudowane w formę Qt ponieważ chciałbym dodać jeszcze przycisk… Przeczuwam że musi to być QWidget dodany do formy ale nie jestem tego zupełnie pewien…  Tak że proszę o kilka wskazówek i kawałek przykładowego kodu jak to zrobić o ile nie będzie to problemem.
P-159770
wojownik266
Temat założony przez niniejszego użytkownika
» 2017-04-04 15:16:26
Innymi  słowy chodzi mi o to aby po naciśnięciu przycisku „OK” na formie w okienku???? Wyświetliły się kwadrat i linie. Nie wiem czy to się da zrobić i nie wiem czy dobrze to wytłumaczyłem  ale jeśli się da to chodzi mi o coś takiego jak w tym kodzie poniżej.:
C/C++
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow( QWidget * parent )
    : QMainWindow( parent )
     , ui( new Ui::MainWindow )
{
    initializeGL();
    ui->setupUi( this );
}

MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::initializeGL()
{
    // Make sure render at the correct aspect ratio
    resizeGL( this->width(), this->height() );
}
void MainWindow::resizeGL( int w, int h )
{
    // Set the viewport
    glViewport( 0, 0, w, h );
   
    qreal aspectRatio = qreal( w ) / qreal( h );
   
    // Initialize Projection Matrix
    glMatrixMode( GL_PROJECTION );
    glLoadIdentity();
   
    // 2D
    glOrtho( - 1 * aspectRatio, 1 * aspectRatio, - 1, 1, 1, - 1 );
}

void MainWindow::paintGL()
{
    // Initialize clear color (cornflower blue)
    glClearColor( 0.39f, 0.58f, 0.93f, 1.f );
   
    // Clear color buffer
    glClear( GL_COLOR_BUFFER_BIT );
   
    // 2D
    glBegin( GL_QUADS );
    glColor3f( 1.f, 0.f, 0.f ); glVertex2f( - 0.8f, - 0.8f );
    glColor3f( 1.f, 1.f, 0.f ); glVertex2f( 0.3f, - 0.8f );
    glColor3f( 0.f, 1.f, 0.f ); glVertex2f( 0.3f, 0.3f );
    glColor3f( 0.f, 0.f, 1.f ); glVertex2f( - 0.8f, 0.3f );
    glEnd();
   
    glBegin( GL_LINES );
    glColor3f( 1.f, 0.f, 0.f ); glVertex2f( - 0.4f, - 0.4f );
    glColor3f( 0.f, 1.f, 0.f ); glVertex2f( 0.8f, - 0.1f );
    glColor3f( 0.f, 0.f, 1.f ); glVertex2f( - 0.1f, 0.8f );
    glEnd();
   
    glFlush();
}

void MainWindow::on_pushButton_clicked()
{
    paintGL();
}
P-159772
« 1 »
  Strona 1 z 1