begin process at 2008 08 21 19:25:45
1 229 610 membres
423 nouveaux aujourd'hui
14 263 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FRAME SIMPLE EN QT POUR NEWBIE


Information sur la source

Catégorie :Graphique Niveau : Débutant Date de création : 26/02/2005 Date de mise à jour : 26/02/2005 18:35:38 Vu : 3 749

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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 */
/*******************/
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...)
  • signaler à un administrateur
    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 ;-)

  • signaler à un administrateur
    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 ;-)

  • signaler à un administrateur
    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.......

  • signaler à un administrateur
    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

  • signaler à un administrateur
    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

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Boutique

Boutique de goodies CodeS-SourceS