Question sur la programmation QT

Question sur la programmation QT - C++ - Programmation

Marsh Posté le 22-03-2004 à 20:12:59    

Salut a tous
Je viens de me mettre a la programmation QT ( avec un bouquin et les tutaux offciels ).
J ai donc creer une classe derivant de widget : dans son constructeur j affiche un menu et j aimerais dans les fonctions slots pouvoir afficher des boutons et des labels dans mon widget mais ca ne marche pas  :heink:  
 
Je vous montre le fichier .cpp
 
#include "MenuBar.h"
#include <qfiledialog.h>
#include <qlineedit.h>
#include <qlayout.h>
 
MenuBar::MenuBar ( QWidget *parent, const char *name ) : QWidget( parent, name ) {
     
    fichier = new QPopupMenu( this );
    fichier->insertItem("&Ouvrir", this, SLOT(slotOuvrir()) );
    fichier->insertItem("&Sauvegarder", this, SLOT(slotSauvegarder()) );
    fichier->insertItem("&Quitter", qApp, SLOT(quit()) );
 
    personne_add = new QPopupMenu( this );
    personne_add->insertItem("&Enseignant", this, SLOT(slotP_AjouterE()));
    personne_add->insertItem("&Non Enseignant", this, SLOT(slotP_AjouterNE()));
     
    personne = new QPopupMenu( this );
    personne->insertItem("&Ajouter", personne_add );
    personne->insertItem("&Modifier", this, SLOT(slotP_Modifier()) );
    personne->insertItem("&Lister", this, SLOT(slotP_Lister()) );
 
    salle = new QPopupMenu( this );
    salle->insertItem("&Ajouter", this, SLOT(slotS_Ajouter()) );
    salle->insertItem("&Modifier", this, SLOT(slotS_Modifier()) );
    salle->insertItem("&Lister", this, SLOT(slotS_Lister()) );
 
    activite = new QPopupMenu( this );
    activite->insertItem("&Ajouter", this, SLOT(slotA_Ajouter()) );
    activite->insertItem("&Modifier", this, SLOT(slotA_Modifier()) );
    activite->insertItem("&Lister", this, SLOT(slotA_Lister()) );
     
    reservation = new QPopupMenu( this );
    reservation->insertItem("&Ajouter", this, SLOT(slotR_Ajouter()) );
    reservation->insertItem("&Modifier", this, SLOT(slotR_Modifier()) );
    reservation->insertItem("&Lister", this, SLOT(slotR_Lister()) );
     
    menu = new QMenuBar( this );
    menu->insertItem( "&Fichier", fichier );
    menu->insertItem( "&Personne", personne );
    menu->insertItem( "&Salle", salle );
    menu->insertItem( "&Activite", activite );
    menu->insertItem( "&Reservation", reservation );
 
    bigparent = new QWidget ( this );
    bigparent->setGeometry(10,45,580,345);
 
    QPushButton *encore = new QPushButton( "test", bigparent );
    encore->setGeometry(0,0,100,100);
 
}
 
void MenuBar::slotOuvrir() {
 
 QString nomFichier = QFileDialog::getOpenFileName( "/", "*.pcs" );
 
}
 
void MenuBar::slotSauvegarder() {
 
 QString nomFichier = QFileDialog::getOpenFileName( "/", "*.pcs" );
 
}
 
void MenuBar::slotP_AjouterE() {
 
/* QLabel *nomLabel = new QLabel ( "Nom : ", this );
 nomLabel->setMinimumSize( nomLabel->sizeHint() );
 QLineEdit *nomText = new QLineEdit ( this );
 nomText->setMinimumSize( nomText->sizeHint() );
 
 QLabel *prenomLabel = new QLabel ( "Prenom : ", this );
 prenomLabel->setMinimumSize( prenomLabel->sizeHint() );
 QLineEdit *prenomText = new QLineEdit ( this );
 prenomText->setMinimumSize( prenomText->sizeHint() );
 
 QLabel *numtelLabel = new QLabel ( "Numero de Telephone : ", this );
 numtelLabel->setMinimumSize( numtelLabel->sizeHint() );
 QLineEdit *numtelText = new QLineEdit ( this );
 numtelText->setMinimumSize( numtelText->sizeHint() );
 
 QHBoxLayout *horizon1 = new QHBoxLayout();
 horizon1->addWidget( nomLabel );
 horizon1->addWidget( nomText );
 
 QHBoxLayout *horizon2 = new QHBoxLayout();
 horizon2->addWidget( prenomLabel );
 horizon2->addWidget( prenomText );
 
 QHBoxLayout *horizon3 = new QHBoxLayout();
 horizon3->addWidget( numtelLabel );
 horizon3->addWidget( numtelText );
 
 QPushButton *ajouter = new QPushButton ( "Ajouter", this );
 QPushButton *effacer = new QPushButton ( "Effacer", this );
 
 QHBoxLayout *horizon4 = new QHBoxLayout();
 horizon4->addWidget( ajouter );
 horizon4->addWidget( effacer );
 
 QVBoxLayout *vertical = new QVBoxLayout( this );
 vertical->addLayout( horizon1 );
 vertical->addLayout( horizon2 );
 vertical->addLayout( horizon3 );
 vertical->addLayout( horizon4 );
 
 vertical->activate();
 vertical->setGeometry( QRect( 10, 40, 580, 380) );*/
 
}
 
void MenuBar::slotP_AjouterNE() {
}
 
void MenuBar::slotP_Modifier() {
}
 
void MenuBar::slotP_Lister() {
}
 
void MenuBar::slotS_Ajouter() {
 
 QPushButton *test = new QPushButton ( "caca", bigparent );
 test->setGeometry(0,0,100,100);
 
 QPushButton *test1 = new QPushButton ( "caca", this );
 test1->setGeometry(0,0,100,100);
 
 QPushButton *test2 = new QPushButton ( "caca", 0 );
 test2->setGeometry(0,0,100,100);
 
}
 
void MenuBar::slotS_Modifier() {
}
 
void MenuBar::slotS_Lister() {
}
 
void MenuBar::slotA_Ajouter() {
}
 
void MenuBar::slotA_Modifier() {
}
 
void MenuBar::slotA_Lister() {
}
 
void MenuBar::slotR_Ajouter() {
}
 
void MenuBar::slotR_Modifier() {
}
 
void MenuBar::slotR_Lister() {
}
 
et la le fichier .h :
 
#ifndef _MENUBAR_H
#define _MENUBAR_H
 
#include <qapplication.h>
#include <qpushbutton.h>
#include <qlabel.h>
#include <qfiledialog.h>
#include <qmenubar.h>
#include <qmenudata.h>
#include <qpopupmenu.h>
#include <qmainwindow.h>
 
class MenuBar : public QWidget {
 
    Q_OBJECT
 
public :
 
    MenuBar ( QWidget *parent = 0, const char *name = 0 );
 
public slots :
 
    void slotOuvrir();
    void slotSauvegarder();
 
    void slotP_AjouterE();
    void slotP_AjouterNE();
    void slotP_Modifier();
    void slotP_Lister();
 
    void slotS_Ajouter();
    void slotS_Modifier();
    void slotS_Lister();
 
    void slotA_Ajouter();
    void slotA_Modifier();
    void slotA_Lister();
 
    void slotR_Ajouter();
    void slotR_Modifier();
    void slotR_Lister();
 
private :
 
    QPopupMenu *fichier, *personne, *personne_add, *salle, *activite, *reservation;
    QMenuBar *menu;
    QWidget *bigparent;
 
};
 
#endif
 
et le fichier main.cpp :
 
#include <qlayout.h>
#include <qlineedit.h>
#include "MenuBar.h"
 
int main( int argc, char **argv ) {
 
    QApplication main( argc, argv );
 
    QWidget *mywidget = new QWidget();
    mywidget->setGeometry( 200, 200, 600, 400 );
 
    MenuBar *menubar = new MenuBar( mywidget, "Barre de Menu" );
    menubar->setGeometry(0, 0, 600, 400);
 
    main.setMainWidget( mywidget );
    mywidget->show();
    return main.exec();
}
 
Les widgets de la fonction slot slotS_Ajouter ne s affichent pas  :pfff:  
 
J ai du faire une erreur mais j ai beau chercher je ne trouve rien :)
J espere que vous allez pouvoir m aider.
Merci Beaucoup

Reply

Marsh Posté le 22-03-2004 à 20:12:59   

Reply

Marsh Posté le 22-03-2004 à 20:47:37    

up plz

Reply

Marsh Posté le 22-03-2004 à 20:49:25    

fait un show sur tes gadgets après leur création :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 22-03-2004 à 20:54:59    

mci bcp
je ne savais pas qu il fallait faire un show :)
desole et encore merci beaucoup pour le coup de main

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed