Partage
  • Partager sur Facebook
  • Partager sur Twitter

qt est bizzare

slot, ...

Sujet résolu
    15 avril 2008 à 19:34:36

    Bonsoir,
    Voilà je suis en train créer une application avec Qt 4.
    Je compile avec Qt prompt.
    Je n'ai pas d'erreur de compilation.
    Mais le slot de Qt aboutQt() ne fonctionne pas et l'affichage de mes onglets non plus.
    Or je ne comprend pas pourquoi sachant que j'ai tout fais (enfin je pense) dans les règle de l'art ( :p )

    Donc voici ce qui s'affiche :
    Image utilisateur

    Voici quelques pages de code :
    /*
    main.cpp
    -----------
    */
    #include <QApplication>
    #include <QMessageBox>
    #include <QMainWindow>
    #include "menu/tab_mainMenu.h"
    #include "tool/gestionFichier.h"
    
    
    int main(int argc, char **argv)
    {
    	QApplication app(argc, argv);
    	
        Tab_MainMenu *menu = new Tab_MainMenu;
    	menu->show();
    	
    	return app.exec();
    }
    

    /*
    index.h
    ----------
    */
    
    #ifndef H_INDEX_H
    #define H_INDEX_H
    
    #define VERSION 1.0	//version logiciel
    
    #define HAUTEUR_FENETRE_MIN
    #define LARGEUR_FENETRE_MIN
    
    #define I_IMG_PUISSANCE             "data/img/continu/i_puissance.png"
    #define I_IMG_RESISTANCE_TENSION    "data/img/continu/i_resitanceTension.png"
    #define A_IMG_INTENSITE             "data/img/alternatif/a_intensite.png"
    #define A_IMG_TRIANGLEPQS           "data/img/alternatif/a_trianglePQS.png"
    #define A_IMG_SINUSOIDE_MONO        "data/img/alternatif/a_sinusoide_mono.jpg"
    #define A_ICON_SINUSOIDE_MONO       "data/img/alternatif/a_Ico_sinusoide_mono.jpg"
    
    #define CHEMIN_CONFIG_CE            "data/tool/config.ce"
    
    #define PI 3.141592654
    
    #endif
    


    /*
    tab_mainMenu.h
    ---------------
    */
    
    #ifndef H_TAB_MAINMENU_H
    #define H_TAB_MAINMENU_H
    
    #include <iostream>
    
    #include <QWidget>
    #include <QApplication>  // macro qApp
    #include <QMainWindow>
    #include <QMenu>
    #include <QMenuBar>
    #include <QMessageBox>
    #include <QVBoxLayout>
    #include <QTabWidget>
    
    #include "../index.h"
    #include "page_continu.h"
    #include "page_alternatif.h"
    
    class Tab_MainMenu : public QMainWindow
    {
    	Q_OBJECT
    	
    	public:
    		Tab_MainMenu(QWidget *parent=0);
    		
    	public slots:
    		void about();
    		
    	private:
    	    QTabWidget *tab_mainMenu;
    		QVBoxLayout *tab_VLayout;
    		QLabel *label_titre_menu;
    		
    		void setupFichierMenu();
    		void setupAideMenu();
    		
    };
    
    #endif
    


    /*
    tab_mainMenu.cpp
    ------------------
    */
    
    #include "tab_mainMenu.h"
    
    Tab_MainMenu::Tab_MainMenu(QWidget *parent) :  QMainWindow()
    {
    	setWindowTitle(tr("Calculs élec - Menu"));
    	
    	label_titre_menu = new QLabel("<h2 align=\"center\">Menu</h2>");
    	
    	setupFichierMenu();
    	setupAideMenu();
    	
    	tab_mainMenu = new QTabWidget;
    	tab_mainMenu->addTab(new PageContinu, tr("Continu"));
    	tab_mainMenu->addTab(new PageAlternatif, tr("Alternatif"));
    	
    	tab_VLayout = new QVBoxLayout;
    	tab_VLayout->addWidget(label_titre_menu);
        tab_VLayout->addWidget(tab_mainMenu);
    	
    	setLayout(tab_VLayout);
    }
    
    void Tab_MainMenu::setupFichierMenu()
    {
        QMenu *fichierMenu = new QMenu(tr("&Fichier"), this);
        menuBar()->addMenu(fichierMenu);
    
    	fichierMenu->addSeparator();
    
        fichierMenu->addAction(tr("&Quiter"), qApp, SLOT(closeAllWindows()),
                            QKeySequence(tr("Ctrl+Q","Fichier |Quiter")));
    }
     
    void Tab_MainMenu::setupAideMenu()
    {
    	QMenu *aideMenu = new QMenu(tr("&?"), this);
        menuBar()->addMenu(aideMenu);
    
        aideMenu->addAction(tr("&A propos"), this, SLOT(about()));
    	aideMenu->addAction(tr("&A propos de Qt"), this, SLOT(QApplication::aboutQt()));
    }
    
    void Tab_MainMenu::about()
    {
         QMessageBox::about(this, tr("Calculs élec v1.0"),
                     tr("<u>Auteur</u> : N<br /><br />" \
                        "<u>Contact</u> : <a href=\"mailto:\"></a><br /><br />"));
    }
    


    Je ne comprend absolument pas.
    Pouvez-vous m'éclairer?

    Merci bien beaucoups :)
    • Partager sur Facebook
    • Partager sur Twitter
    :)
      15 avril 2008 à 19:38:53

      les fenêtres principales ne sont pas des boîtes de dialogue, pour mettre un widget dedans tu dois faire appel à setCentralWidget(QWidget*), après pour le slot je sais pas trop.
      • Partager sur Facebook
      • Partager sur Twitter
        15 avril 2008 à 19:45:13

        Comment je fais avec setCentralWidget car j'ai deux choses à placer.
        Un titre et en dessous les onglets.
        • Partager sur Facebook
        • Partager sur Twitter
        :)
          15 avril 2008 à 20:15:10

          Tu fais un widget qui les contient.
          • Partager sur Facebook
          • Partager sur Twitter
            15 avril 2008 à 20:22:47

            Ok. Merci.
            En revanche pour le slot de aboutQt ?? C'est bizzare.
            Si vous voulez je peux mettre tous les fichiers source dans un zip pour que vous puissiez voir??
            Non??
            • Partager sur Facebook
            • Partager sur Twitter
            :)
              15 avril 2008 à 20:55:43

              A mon avis ça ne fonctionne pas car le gestionnaire d'événement cherche la fonction QApplication::aboutQt() dans ton Tab_mainMenu, et elle n'existe pas.
              • Partager sur Facebook
              • Partager sur Twitter
                15 avril 2008 à 21:12:44

                aideMenu->addAction(tr("&A propos de Qt"), qApp, SLOT(aboutQt()));
                


                tab_mainMenu = new QTabWidget;
                setCentralWidget(tab_mainMenu);
                
                tab_mainMenu->addTab(new PageContinu, tr("Continu"));
                tab_mainMenu->addTab(new PageAlternatif, tr("Alternatif"));
                

                et tu peux oublier les 4-5 lignes qui suivent de Layouts.
                • Partager sur Facebook
                • Partager sur Twitter
                Altarapp.com - Applications, Code Snippets, API Wrappers et etc, le tout en C# le plus clair du temps!

                qt est bizzare

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown