示例#1
0
int main (int argc, char *argv[])
{
    QApplication    app(argc,argv);

    MaFenetre       fenetre(200,200);
    fenetre.show();
    return app.exec();
}
示例#2
0
文件: main.cpp 项目: ety04/newbox
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    FenPrincipale fenetre(800, 600);

    fenetre.show();
    return app.exec();
}
示例#3
0
文件: main.cpp 项目: Pauchpock/UTC-GI
int main(int argc, char * argv[]) {
    QApplication app(argc, argv);

    // EXO 28
//    QWidget fenetre;
//    fenetre.setFixedSize(200, 200);

//    QVBoxLayout layout(&fenetre);

//    QLineEdit identificateur(&fenetre);
//    identificateur.setFixedWidth(180);
//    //identificateur.move(10,10);
//    layout.addWidget(&identificateur);

//    QTextEdit titre(&fenetre);
//    titre.setFixedSize(180,110);
//    //titre.move(10,45);
//    layout.addWidget(&titre);

//    QPushButton save("Sauver", &fenetre);
//    save.setFixedWidth(80);
//    //save.move(10,170);
//    layout.addWidget(&save);

//    //fenetre.setLayout(&layout);

//    QString file = QFileDialog::getOpenFileName(0,QString(),"../TD7");
//    qDebug()<<file;
//    TacheManager& tm = TacheManager::getInstance();

//    try {tm.load(file);}
//    catch(...){}
//    Tache& t = tm.getTache("T1");

//    identificateur.setText(t.getId());
//    titre.setText(t.getTitre());

//    fenetre.show();

    // EXO 29
    TacheManager& m=TacheManager::getInstance();
    QString chemin = QFileDialog::getOpenFileName(0,QString(),"../TD7");
    m.load(chemin);
    Tache& t=m.getTache("T2");
    TacheEditeur fenetre(t);
    fenetre.setTacheManager(&m);
    fenetre.setFile(&chemin);
    fenetre.show();

    return app.exec();
}
示例#4
0
void Favoris::afficher(void)
{
    QSqlQuery requete(db_fav);

    QDialog fenetre(this,Qt::Window);
    QGridLayout layout;
    QTreeWidget arbre;

    layout.addWidget(&arbre,0,0);

    fenetre.setLayout(&layout);

    fenetre.exec();
}
示例#5
0
int main( int argc, char *argv[] )
{
   // créer une fenêtre
   FenetreTP fenetre( "INF2705 TP" );

   // allouer des ressources et définir le contexte OpenGL
   initialiser();

   bool boucler = true;
   while ( boucler )
   {
      // affichage
      fenetre.afficherScene();
      fenetre.swap();

      // récupérer les événements et appeler la fonction de rappel
      boucler = fenetre.gererEvenement();
   }

   // détruire les ressources OpenGL allouées
   conclure();

   return 0;
}
示例#6
0
文件: main.cpp 项目: rom1504/ngengine
int main(int argc, char **argv)
{	
  // Notre fenêtre
	
  SDL_Window* fenetre(0);
  SDL_GLContext contexteOpenGL(0);
	
  SDL_Event event;
  bool done(false);
	
	
  // Initialisation de la SDL
	
  if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_HAPTIC) < 0)
  {
    std::cout << "Erreur lors de l'initialisation de la SDL : " << SDL_GetError() << std::endl;
    SDL_Quit();
		
    return -1;
  }

  IMG_Init(IMG_INIT_JPG | IMG_INIT_PNG);
	
	
  // Version d'OpenGL
	
  SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
  SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1);
	
	
  // Double Buffer
	
  SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
  SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
	SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, 1);
	
  // Création de la fenêtre

  fenetre = SDL_CreateWindow(
    "NGEngine - 01Basic", 
    SDL_WINDOWPOS_CENTERED, 
    SDL_WINDOWPOS_CENTERED, 
    800, 600, 
    SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL
  );

  if(fenetre == 0) {
    std::cout << "Erreur lors de la creation de la fenetre : " << SDL_GetError() << std::endl;
    SDL_Quit();

    return -1;
  }


  // Création du contexte OpenGL

  contexteOpenGL = SDL_GL_CreateContext(fenetre);

  if(contexteOpenGL == 0)
  {
    std::cout << SDL_GetError() << std::endl;
    SDL_DestroyWindow(fenetre);
    SDL_Quit();
    return -1;
  }

  // On initialise GLEW
  GLenum initialisationGLEW( glewInit() );

  // Si l'initialisation a échouée :
  if(initialisationGLEW != GLEW_OK)
  {
    // On affiche l'erreur grâce à la fonction : glewGetErrorString(GLenum code)

    std::cout << "Erreur d'initialisation de GLEW : " << glewGetErrorString(initialisationGLEW) << std::endl;


    // On quitte la SDL

    SDL_GL_DeleteContext(contexteOpenGL);
    SDL_DestroyWindow(fenetre);
    SDL_Quit();

    return -1;
  }

  glClearColor(0.3, 0.3, 0.5, 1.);

  // Vertices et coordonnées

//  float vertices[] = {-0.5, -0.5,   0.0, 0.5,   0.5, -0.5};

  // Création de la subscene

  nge::scene::Scene scene;
  nge::scene::SubScene *subscene = new nge::scene::SubScene(600, 800, 600, 0, 0);

  scene.add(subscene);

  Sint32 vertices[] = {
    0, 0,
    160, 0,
    0, 160,
    160, 160,
  };

  Uint8 colors[] = {
    255, 0, 0, 255, 
    0, 255, 255, 255,
    0, 255, 0, 255,
    0, 0, 255, 255
  };

  double texcoords[] {
    0., 0.,
    1., 0.,
    0., 1.,
    1., 1.
  };

  nge::texture::Texture *tex = NGE_SDL_Texture_Load("nge.png");
  nge::video::D2::entity::Basic 
    e1(4, 1, GL_TRIANGLE_STRIP), 
    e2(4, 1, GL_TRIANGLE_STRIP), 
    e3(4, 1, GL_TRIANGLE_STRIP), 
    e4(4, 1, GL_TRIANGLE_STRIP);

  nge::video::shader::Shader *shaders[3];

  shaders[0] = new nge::video::shader::Shader();
  if(!shaders[0]->load_files("Shaders/vertex2.vert", "Shaders/vertex2.frag"))
    printf("fichiers des shaders non trouvés.\n");

  shaders[1] = new nge::video::shader::Shader();
  if(!shaders[1]->load_files("Shaders/vertex2color4.vert", "Shaders/vertex2color4.frag"))
    printf("fichiers des shaders non trouvés.\n");

  shaders[2] = new nge::video::shader::Shader();
  if(!shaders[2]->load_files("Shaders/vertex2color4tex2.vert", "Shaders/vertex2color4tex2.frag"))
    printf("fichiers des shaders non trouvés.\n");

  if(!shaders[0]->compile())
    printf("shaders not compiled\n");
  else 
    printf("shaders compiled\n");

  if(!shaders[1]->compile())
    printf("shaders not compiled\n");
  else 
    printf("shaders compiled\n");

  if(!shaders[2]->compile())
    printf("shaders not compiled\n");
  else 
    printf("shaders compiled\n");

  shaders[0]->set_matrix(&subscene->_projection, &subscene->_modelview);
  shaders[1]->set_matrix(&subscene->_projection, &subscene->_modelview);
  shaders[2]->set_matrix(&subscene->_projection, &subscene->_modelview);

  e1.setVertexBuf(vertices, false);  // (x, y) couples
  e1._shader = shaders[0];

  e2.setVertexBuf(vertices, false);  // (x, y) couples
  e2.setColorBuf(colors, false);
  e2._shader = shaders[1];
  *(e2.getPosition()) = glm::vec2(165, 0);

  e3.setVertexBuf(vertices, false);  // (x, y) couples
  e3.setColorBuf(colors, false);
  e3.setTexCoords(texcoords, false);
  e3.setTexture(tex, true); // free the texture
  e3._shader = shaders[2];
  *(e3.getPosition()) = glm::vec2(330, 0);

  e4.setVertexBuf(vertices, false);  // (x, y) couples
  e4.setColorBuf(colors, false);
  e4.setTexCoords(texcoords, false);
  e4.setTexture(tex, false); // don't free the texture
  e4._shader = shaders[2];
  *(e4.getPosition()) = glm::vec2(0, 170);

  subscene->add(&e1);
  subscene->add(&e2);
  subscene->add(&e3);
  subscene->add(&e4);

  char down;
  
  nge::video::D2::Camera *cam;
  cam = subscene->getCamera2D();

  bool t[6] = {0};

  // Boucle principale
  while(!done)
  {
    while(SDL_PollEvent(&event)) {

      switch(event.type) {
        
        case SDL_QUIT:
          done = 1;
          break;

        case SDL_KEYDOWN:
          switch (event.key.keysym.sym) {
            case SDLK_ESCAPE:
              done = 1;
              break;
            case SDLK_LEFT:
              t[0] = 1;
              break;
            case SDLK_RIGHT:
              t[1] = 1;
              break;
            case SDLK_UP:
              t[2] = 1;
              break;
            case SDLK_DOWN:
              t[3] = 1;
              break;
            case SDLK_z:
              t[4] = 1;
              break;
            case SDLK_s:
              t[5] = 1;
              break;
            default:
              break;
          }
          break;
        case SDL_KEYUP:
          switch (event.key.keysym.sym) {
            case SDLK_LEFT:
              t[0] = 0;
              break;
            case SDLK_RIGHT:
              t[1] = 0;
              break;
            case SDLK_UP:
              t[2] = 0;
              break;
            case SDLK_DOWN:
              t[3] = 0;
              break;
            case SDLK_z:
              t[4] = 0;
              break;
            case SDLK_s:
              t[5] = 0;
              break;
            default:
              break;
          }
          break;
        default:
          break;
      }
    }

#define NB 5

    if(t[0])
      cam->moveX(-NB);
    else;

    if(t[1])
      cam->moveX(NB);
    else;

    if(t[2])
      cam->moveY(-NB);
    else;

    if(t[3])
      cam->moveY(NB);
    else;

#undef NB

    if(t[4]) {
      cam->increaseWidth(- cam->getZoomXSpeed() * 2);
      cam->increaseHeight(- cam->getZoomYSpeed() * 2);
    }
    else;

    if(t[5]) {
      cam->increaseWidth(cam->getZoomXSpeed() * 2);
      cam->increaseHeight(cam->getZoomYSpeed() * 2);
    }
    else;

    // on met à jour
    if(e4._alpha == 255)
      down = -5;
    else if(e4._alpha == 0)
      down = 5;
    
    e4._alpha += down;
    // Nettoyage de l'écran

    glClear(GL_COLOR_BUFFER_BIT);
    subscene->draw();

    // Actualisation de la fenêtre

    SDL_GL_SwapWindow(fenetre);

    SDL_Delay(10);
  }


  // On quitte la SDL

  delete shaders[0];
  delete shaders[1];
  delete shaders[2];

  SDL_GL_DeleteContext(contexteOpenGL);
  SDL_DestroyWindow(fenetre);
  SDL_Quit();

  return 0;
}
示例#7
0
bool Favoris::add(TFavoris * fav)
{
    QSqlQuery requete(db_fav);

    QDialog fenetre(this);
    QComboBox liste_dossiers;
    QLineEdit champ_nom(fav->nom);
    QDialogButtonBox btn(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal);
    QFormLayout layout;
    QStringList dossiers;

    liste_dossiers.setEditable(true);

    layout.addRow("nom du favoris :",&champ_nom);
    layout.addRow("Dossier :",&liste_dossiers);
    layout.addRow(&btn);
    fenetre.setLayout(&layout);

    connect(&btn,SIGNAL(accepted()),&fenetre,SLOT(accept()));
    connect(&btn,SIGNAL(rejected()),&fenetre,SLOT(close()));

    //on remplit la liste des dossiers
    if(requete.exec("Select nom_dossier from dossiers"))
    {
	while(requete.next())
	    dossiers << requete.value(0).toString();
    }
    else
	QMessageBox::critical(this,"Erreur","Problème survenu lors de la lecture des dossiers : " + requete.lastError().text());

    liste_dossiers.addItems(dossiers);

    if(fenetre.exec()) //si on click sur Save
    {
	QByteArray bytes;
	QBuffer buffer(&bytes);
	buffer.open(QIODevice::WriteOnly);
	QPixmap pix = fav->favicon.pixmap(16,16);
	pix.save(&buffer,"png");

	requete.prepare("INSERT INTO adresses (url,nom_favoris,dossier,favicon) VALUES (:url,:nom,:dossier,:favicon);");
	requete.bindValue(":url",fav->url,QSql::In);
	requete.bindValue(":nom",champ_nom.text(),QSql::In);
	requete.bindValue(":dossier",liste_dossiers.currentText(),QSql::In);
	requete.bindValue(":favicon",buffer.data(),QSql::In | QSql::Binary);

	buffer.close();

	if(dossiers.contains(liste_dossiers.currentText())) //si le dossier existe déjà
	{
	    if(!requete.exec())
	    {
		QMessageBox::critical(this,"Erreur","Problème survenu lors de l'enregistrement' : " + requete.lastError().text());
		return false;
	    }
	}
	else //sinon on doit l'ajouter dans la base de données...
	{
	    //if(!requete.exec("INSERT INTO adresses (url,nom_favoris,dossier,favicon) VALUES ('"+fav->url+"','"+champ_nom.text()+"','"+liste_dossiers.currentText()+"','"+QVariant(fav->favicon).toByteArray()+"');"))
	    if(!requete.exec())
	    {
		QMessageBox::critical(this,"Erreur","Problème survenu lors de l'enregistrement (adresse) : " + requete.lastError().text());
		return false;
	    }
	    if(!requete.exec("INSERT INTO dossiers (nom_dossier,parent) VALUES ('"+liste_dossiers.currentText()+"','favoris');"))
	    {
		QMessageBox::critical(this,"Erreur","Problème survenu lors de l'enregistrement (dossier) : " + requete.lastError().text());
		return false;
	    }
	}

    }
    else
	return false; //si l'enregistrement à merdé...

    fav->nom = champ_nom.text(); //nom sous lequel le lien à été enregitsré
    fav->path = liste_dossiers.currentText(); //nom du dossier dans lequel l'ajout à été fait...
    return true; //si l'enregistrement s'est bien passé
}