Question sur la programmation QT - C++ - Programmation
Marsh Posté le 22-03-2004 à 20:49:25
fait un show sur tes gadgets après leur création
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
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
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
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