begin process at 2012 05 27 16:29:20
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > FRAME SIMPLE EN QT POUR NEWBIE

FRAME SIMPLE EN QT POUR NEWBIE


 Information sur la source

Note :
9,67 / 10 - par 3 personnes
9,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Niveau :Débutant Date de création :26/02/2005 Date de mise à jour :26/02/2005 18:35:38 Vu :6 360

Auteur : jean84

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Voila un source tout simple pour comprendre comment creer une frame en Qt avec juste un bouton.
je pose ce source car j'ai eu du mal a en trouver et qu'a chaque fois, le source est mal expliquer ou il y a
trop de gadget (toolbar, textlist, ...).... C'est vraiment un exemple super simple qui demontre juste
la derivation de la classe principale et l'ajout dun bouton. Un gestionnaire d'action est egalement inclus.

Source

  • /***************************************************************************
  • * Copyright (C) 2005 by Jean *
  • * ionace@latriyade.com *
  • * *
  • ***************************************************************************/
  • #include <qapplication.h>
  • #include <qpushbutton.h>
  • #include <qmessagebox.h>
  • class bouton : public QPushButton
  • {
  • Q_OBJECT
  • public:
  • bouton(const QString & text, QWidget * parent);
  • ~bouton();
  • public slots:
  • void message();
  • };
  • bouton::bouton(const QString & text, QWidget * parent) : QPushButton(text,parent)
  • {
  • setGeometry(100, 100, 100, 100);
  • }
  • bouton::~bouton()
  • {
  • }
  • void bouton::message()
  • {
  • QMessageBox::information( this, "Application name",
  • "Unable to find the user preferences file.\n"
  • "The factory default will be used instead." );
  • }
  • /* Nouvelle classe issue de la derivation de QWidget */
  • class Widget : public QWidget
  • {
  • public:
  • Widget();
  • //constructeur
  • };
  • /* Constructeur par default de la classe Widget */
  • Widget::Widget() : QWidget()
  • {
  • setMinimumSize( 300, 300 ); // Avec ces deux fonctions on empeche l'utilisateur
  • setMaximumSize( 300, 300 ); // de modifier la taille de la frame avec la souris
  • bouton *quit = new bouton( "Quit", this );
  • // on creer un bouton graphique
  • quit->setFont( QFont( "Times", 18, QFont::Bold ) );
  • // definition de sa police de caratcere
  • connect( quit, SIGNAL( clicked() ), quit, SLOT( message() ) );
  • /* gestionnaire d'evenemnt
  • connect( widget_qui_envoi_un_signal, type_du_signal, widget_qui_recoit_le_signal, traitement_a_effectuer) */
  • }
  • /**********************/
  • /* Debut du programme */
  • int main( int argc, char **argv )
  • {
  • QApplication a( argc, argv );
  • // on instancie la classe QApplication
  • Widget w;
  • // on instancie la classe Widget
  • w.setGeometry( 0, 0, 800, 600 );
  • // definition de l'emplacement et de la taille de la frame
  • a.setMainWidget( &w );
  • // on on enferme le conteneur principale dans l'objet creer a partir de QApplication
  • w.show();
  • // w doit-etre visible sinon la classe principale sera invisible ( c'est le conteneur )
  • return a.exec();
  • // execute la frame
  • }
  • /* fin du programme */
  • /*******************/
/***************************************************************************
 *   Copyright (C) 2005 by Jean                                            *
 *   ionace@latriyade.com                                                  *
 *                                                                         *
 ***************************************************************************/
#include <qapplication.h>
#include <qpushbutton.h>
#include <qmessagebox.h> 


class bouton : public QPushButton
{
   Q_OBJECT
   public:
        bouton(const QString & text, QWidget * parent);
	~bouton();

   public slots:
       void message();

};

bouton::bouton(const QString & text, QWidget * parent) : QPushButton(text,parent)
{
 setGeometry(100, 100, 100, 100);
}

bouton::~bouton()
{
}

void bouton::message()
{
 QMessageBox::information( this, "Application name",
    "Unable to find the user preferences file.\n"
    "The factory default will be used instead." );
}

/* Nouvelle classe issue de la derivation de QWidget */
class Widget : public QWidget
{
 public:
  Widget();  
  //constructeur
};

/* Constructeur par default de la classe Widget */
Widget::Widget() : QWidget()
{
 setMinimumSize( 300, 300 ); // Avec ces deux fonctions on empeche l'utilisateur
 setMaximumSize( 300, 300 ); // de modifier la taille de la frame avec la souris
 
 bouton *quit = new bouton( "Quit", this );  
 // on creer un bouton graphique
    quit->setFont( QFont( "Times", 18, QFont::Bold ) );  
    // definition de sa police de caratcere

    connect( quit, SIGNAL( clicked() ), quit, SLOT( message() ) );  
    /* gestionnaire d'evenemnt
     connect( widget_qui_envoi_un_signal, type_du_signal, widget_qui_recoit_le_signal, traitement_a_effectuer) */
}


/**********************/
/* Debut du programme */
int main( int argc, char **argv )
{
 QApplication a( argc, argv ); 
 // on instancie la classe QApplication
 
 Widget w;  
 // on instancie la classe Widget
 w.setGeometry( 0, 0, 800, 600 );  
 // definition de l'emplacement et de la taille de la frame
 a.setMainWidget( &w );  
 // on on enferme le conteneur principale dans l'objet creer a partir de QApplication
 w.show();
 // w doit-etre visible sinon la classe principale sera invisible ( c'est le conteneur ) 
 return a.exec();  
 // execute la frame
}
/* fin du programme */
/*******************/



 Historique

26 février 2005 18:19:18 :
26 février 2005 18:21:30 :
26 février 2005 18:35:38 :
J'ai rajouter la classe bouton qui est unederivation de la classe QPushButton qui m'a permis d'obtenir mon propre gestionnaire d'action (enfin presque...)

 Sources du même auteur

[C - ANSI] - EXEMPLE D'UTILISATION DES POINTEURS DE FONCTION...
Source avec Zip Source avec une capture [DEV / WIN32 / C++] GENERATEUR DE SCRIPT POUR NTBACKUP
Source avec Zip CLASSE WINSOCK POUR NEWBIE
Source avec Zip NEWBIE/LINUX/QT : LECTEUR VIRTUEL

 Sources de la même categorie

Source avec Zip Source avec une capture PLANNING D'EQUIPE par grephit
Source avec Zip APPLICATION DE DESSIN DE QUELQUES FIGURES par laguchori
Source avec Zip Source avec une capture HDR EXPOSURE FUSION par mecrosoft
Source avec Zip Source avec une capture IRC CLIENT MULTISERVEUR EN MFC (TXIRC) par TeniX
Source avec Zip ENTETE DU FICHIER BMP (BIPMAP) par k.Lutchi

Commentaires et avis

Commentaire de jean84 le 26/02/2005 15:28:45

Je voulais egalement qu'on m'explique si possible comment faire pour creer ma propre action dans connect().
Le code pourrait etre ceci :
Au lieu de
connect( quit, SIGNAL( clicked() ), qApp, SLOT( quit() ) );
Je voudrais utiliser la fonction membre ( Widget::message() )  
connect( quit, SIGNAL( clicked() ), this, SLOT( message() );
Je voudrais qu'une messagebox s'ouvre mais quand je compile il ne se passe rien...
Je clique mais rien ne s'affiche... si quelqu'un peut m'aider a resoiudre ce petit probleme, sa serait cool de sa part. Merci ;-)

Commentaire de jean84 le 26/02/2005 18:32:06

Heu.. j'ai mis a jour le source. J'ai rajouter une classe pour le bouton (bouton) pour pouvoir definir un fonction appropriee pour le traitement du signal a effectuer mais j'ai eu un soucis : KDevelop a compile sans problemes mais c'est l'editeur de liens qui me renvoi une erreur -> "sortie état 2".... Je ne sais absolument pas d'ou le probleme pourrait venir donc si quelqu'un connait la solution... qu'il me fasse signe !!!
Merci d'avance ;-)

Commentaire de jean84 le 04/03/2005 10:22:32

Pour la soluce :
pour compiler sans problemes, il faut mettre chaque declaration de classe dans un fichier .h (separe de preference) et chaque fonction membre dans un fichier .cpp portant le meme nom du fichier .h.
En fait le probleme c'est que KDevelop ne pouvait pas creer de fichier .moc avant de linker c'est pour sa que sa bader....... je vais quand meme remettre un zip en ligne avec tous les fichiers du projets.......

Commentaire de volkukan le 03/12/2005 15:59:34

Salut, jessaie d'utilier la toute derniere version de fmodex ecris en c++ et m'aperçois malheuresement que les classes de cette version ne peuvent pas se compiler avec devc++sinon les fonctions ce compilent bien mais celle ci sont en c . C'est d'autan plus chiant que j'utilise les classes de Qt4 pour faire mes prog qui eux se compile qu'avec mingw (donc devc++).
Jsuis un debutant en prog et jme suis dis si il été possible d'utiliser les fonctions de fmodex ecritent en c pour ensuite les implanter dans les classes de Qt4. ainsi j'ajouterais des fonctions a Qt4 permettant de lire des mp3 et non que des wav.
jpense pas etre le seul a penser ça, mais bon jtrouve difficilement de topic sur ce sujet. Si quelqun a une idée ce serais cool de le faire partager a tous.
merci

Commentaire de jean84 le 06/12/2005 10:59:54

je t'avoue que je ne connais pas fmodex... je connais vaguement fmod qui est une api proche de directx (enfin il me semble).
Pour ton probleme de compilation, j'avoue encore une fois ma faiblesse en te disant que je n'arrive pas trop a imaginer ton probleme, peut etre en etant un peu plus precis avec des exemples concrets...

@++

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales