Costruzione di Interfacce Lezione 20 Qt + Opengl

Slides:



Advertisements
Presentazioni simili
CUDA & OpenMP parallel programming.
Advertisements

BCX (user guide: cineca
Esercitazioni If nidificati
Interfacce Java.
JPA Overview della tecnologia. Java Persistence Architecture Definita nella JSR-220 EJB 3.0 ( Tentativo di unificare EJB2.1 con.
GLUT & OpenGL Ing. Tommaso Coviello Politecnico di Bari
Gerarchie di Oggetti Tutti i sistemi avanzati di grafica (PHIGS, OpenGL, DirectDraw, …) permettono di definire un modello come una gerarchia di oggetti.
EJB Getting started Database: MySql Application Server: Pramati Server Ambiente di sviluppo: Pramati Studio 3 Applicazione esempio: Logon Trento, 30/10/2002.
Introduzione alla Object Oriented Programming, OOP E.Mumolo. DEEI
E.Mumolo. DEEI Introduzione alla programmazione ad oggetti in C++ Object Oriented Programming, OOP E.Mumolo. DEEI
Costruzione di Interfacce Lezione 11 Dal Java al C++ parte 2
11 Dicembre 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 27 Xml for dummies Parte 2
Costruzione di Interfacce Lezione 6 Esercitazione Trasformazioni
25 Nov 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 22 Estensioni Opengl, Multitexturing,
Costruzione di Interfacce Lezione 13 Clipping e HSR
Costruzione di Interfacce Lezione 5 Trasformazioni Affini
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 27 Estensioni Opengl, Multitexturing,
Costruzione di Interfacce Lezione 10 Dal Java al C++ parte 1
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 26 XML read e write / Gl Selection e picking
1 Costruzione di Interfacce Primi passi in OpenGL
Costruzione di Interfacce Lezione 7 Shading
Costruzione di Interfacce Lezione 18 Qt Tutorial 2
Laboratorio di Linguaggi lezione II Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
Laboratorio di Linguaggi note sull'uso dell' IDE DevC++ Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
Costruzione di Interfacce Lezione 19 Qt Tutorial Designer
Costruzione di Interfacce Lezione 5 Trasformazioni Affini
Costruzione di Interfacce Lezione 12 C++STL
22 Nov 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 22 Texturing
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 24 Scene Graphs e Xml for dummies
6 Dicembre 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 25 anatomia di uno screen saver
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 25 Xml for dummies Parte 2
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 30 MMeditor e collision detection
Costruzione di Interfacce Lezione 15 Rendering Locale e Globale
25 Nov 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 21 Trackball
Costruzione di Interfacce Lezione 16 Qt
1 Costruzione di Interfacce Primi passi in OpenGL
2 Dicembre 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 23 Scene Graphs, Object Loading
Costruzione di Interfacce Lezione 8 Rasterizzazione
Laboratorio di Linguaggi lezione II Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
1 Ultima Lezione del Corso di Fondamenti di Informatica 1 a.a – 06 Ma 29-Nov-2005.
JAVA C import java.util.*; #include <stdio.h>
1 Esercitazione sui segnali Problema: creare un programma analizzatore di file testuali che prenda come argomenti il nome di un file e una sequenza di.
Programming with JXTA Hello World Peer discovery Peer Group discovery Creating Peer group Joining a Peer Group.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
Interazione utente-programma
Lezione IX Laboratorio di Programmazione. Le Classi Una classe C++ è definita come segue: class Nomeclasse { private: // metodi e attrib. visibili solo.
1 Programmazione grafica: lInterazione Daniele Marini.
1 Gestione della Window Daniele Marini. 2 Definire una Window: GLUT o altro WM /* Standard GLUT initialization */ glutInit(&argc,argv); glutInitDisplayMode.
© 2008 WS (WebScience srl) – All rights reserved WS Tech workshop Software Construction.
void binario(int n); …………………
24 aprile 2002 Avvisi: Risultati 1 o Esonero: (entro) lunedi 27 disponibili nella pag. WEB, ma anche esposti nella bacheca fuori dal corridoio 2 o dente,
Creazione progetto in C++/DEV
/ Elementi di C++ Introduzione a ROOT , Laboratorio Informatico ROOT warm up , Laboratorio Informatico Introduzione a.
Test con JUnit. zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i.
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Corso di Programmazione Grafica e Laboratorio Daniele Marini
1 Programmazione grafica: l’Interazione Daniele Marini.
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 29 ancora MMeditor,
Programmazione in linguaggio C
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Pile e Code.
CORSO DI PROGRAMMAZIONE II
Lezione X Laboratorio di Programmazione. Struttura di un programma Definizione classe e specifica (parziale) classe.hclasse.cpp main.cpp Specifica metodi.
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 5 -Test e verifica Ernesto Damiani Università degli Studi di Milano.
TITOLO PRESENTAZIONE sottotitolo Autore/i Indirizzo
Sviluppo di un programma
APPUNTI SUL LINGUAGGIO C Simulazione Prima Prova Intermedia
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Corso di programmazione, Simulazione, ROOT, code, ecc. ecc.
Transcript della presentazione:

Costruzione di Interfacce Lezione 20 Qt + Opengl

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni2 Hello GL Primo tentativo si prende il tutorial hello e si sostituisce il pushbutton con un QGLWidget

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni3 /**************************************************************** ** ** Qt GL 1 ** ****************************************************************/ #include int main( int argc, char **argv ) { QApplication a( argc, argv ); QGLWidget hello(0); hello.resize( 100, 30 ); a.setMainWidget( &hello ); hello.show(); return a.exec(); }

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni4 Compila ma non fa nulla di interessante. QGLWidget e pensata per essere la classe base da cui si deriva una classe in cui specializziamo paintGL() resizeGL() initializeGL() sostituendole con le nostre implementazioni

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni5 subclassiamo

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni6 subclassiamo /**************************************************************** ** ** Qt GL 2 ** ****************************************************************/ #include class myGLWidget : public QGLWidget { public: myGLWidget( QWidget *parent=0, const char *name=0 ): QGLWidget(parent, name) {} void initializeGL() { // Set up the rendering context, define display lists etc.: glClearColor( 0.0, 1.0, 1.0, 0.0 ); } void resizeGL( int w, int h ) { // setup viewport, projection etc.: glViewport( 0, 0, (GLint)w, (GLint)h ); } void paintGL() { glClear(GL_COLOR_BUFFER_BIT); } };

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni7 subclassiamo int main( int argc, char **argv ) { QApplication a( argc, argv ); myGLWidget hello(0); hello.resize( 100, 30 ); a.setMainWidget( &hello ); hello.show(); return a.exec(); }

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni8 Ripuliamo La definizione della classe e la sua implementazione spostiamola in due file a parte CIGLWidget.h e CIGLWidget.cpp prepariamo anche la classe a slot e a tutto il resto aggiungendo la macro Q_OBJECT Il file verra processato dal MOC

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni9 CIGLWidget.h #ifndef CIGLWIDGET_H #define CIGLWIDGET_H #include class CIGLWidget : public QGLWidget { Q_OBJECT public: CIGLWidget( QWidget *parent=0, const char *name=0 ); void initializeGL(); void resizeGL( int w, int h ); void paintGL(); }; #endif

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni10 CIGLWidget.cpp #include "CIGLWidget.h" CIGLWidget::CIGLWidget( QWidget *parent, const char *name ): QGLWidget(parent, name) { } void CIGLWidget::initializeGL() { // Set up the rendering context, define display lists etc.: glClearColor( 0.0, 1.0, 1.0, 0.0 ); } void CIGLWidget::resizeGL( int w, int h ) { // setup viewport, projection etc.: glViewport( 0, 0, (GLint)w, (GLint)h ); } void CIGLWidget::paintGL() { glClear(GL_COLOR_BUFFER_BIT); }

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni11 main.cpp #include #include "CIGLWidget.h" int main( int argc, char **argv ) { QApplication a( argc, argv ); CIGLWidget hello(0); hello.resize( 100, 30 ); a.setMainWidget( &hello ); hello.show(); return a.exec(); }

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni12 Designer Aprire Designer nuovo progetto nuovo mainwindow nome MainForm caption QTMoebius nuovo main.cpp salvare

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni13 Aggiungere Custom Widget Copiare CIGLWidget h e cpp nella dir del progetto menu tool->custom->Edit Custom Widget

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni14 Usare il custom widget Aggiungere il CIGLWidget al form deselezionare e fare layout H

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni15 CIGLWidget I file che implementano la CIGLWidget devono essere aggiunti al progetto di designer. Devono essere nel.pro perche il.h va processato dal moc project->add file salvare

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni16.net Importare il progetto.pro nel.net controllare che ci siano tutti file aggiungere le lib opengl

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni17 Compilare Dovreste vedre qualcosa di simile a questo…

29 Oct 2003Costruzione di Interfacce - Paolo Cignoni18 Aggiungiamo