[QT OPenGL] Pierwszy program
Ostatnio zmodyfikowano 2017-04-04 15:16
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. |
|
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.: #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() { resizeGL( this->width(), this->height() ); } void MainWindow::resizeGL( int w, int h ) { glViewport( 0, 0, w, h ); qreal aspectRatio = qreal( w ) / qreal( h ); glMatrixMode( GL_PROJECTION ); glLoadIdentity(); glOrtho( - 1 * aspectRatio, 1 * aspectRatio, - 1, 1, 1, - 1 ); }
void MainWindow::paintGL() { glClearColor( 0.39f, 0.58f, 0.93f, 1.f ); glClear( GL_COLOR_BUFFER_BIT ); 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(); }
|
|
« 1 » |