Probleme compilation Qt avec fichiers .ui

Résolu
Wazza6 Messages postés 202 Statut Membre -  
serialtueur Messages postés 50 Statut Membre -
Bonjour,
je suis le cours de C++ avec Qt du site du zero et la je suis bloqué... je fais tout ce qu'il faut faire mais la compilation plante.
Est-ce que quelqu'un qui pourrait me faire le code d'un .cpp basique qui fait seulement afficher une fenêtre faite avec QtDesigner (qui a été "transformé" en .h avec uic -o MainWindow.ui ) dont le .h s'appelle ui_MainWindow.h et le .ui (si c'est nécéssaire) s'appelle MainWindow.ui?

Merci
Configuration: Windows Vista
Firefox 3.0.8
Qt 4+

14 réponses

  1. francis
     
    Salut,
    Ton prof a du t'apprendre a coder proprement, a ta façon.
    Prend le code du .ui de qt designer, et transforme le comme tu le veux.
    Après, tu ouvre la console qt dans ton répertoirepuis :
    qmake -project
    qmake
    make
    0
  2. Wazza6 Messages postés 202 Statut Membre 40
     
    "Prend le code du .ui de qt designer, et transforme le comme tu le veux. "
    -Transforme le comme tu veux?
    Pourquoi le transformer?
    "Après, tu ouvre la console qt dans ton répertoirepuis :
    qmake -project
    qmake
    make"
    Ça , je sais , c'est là le problême : je recois toujours des codes d'erreurs, même en faisant un copier-coller de son code de main.cpp ,mais en changeant le nom du .h dans le include car ce n'est pas le même.
    Code du main.cpp:
    #include <QApplication>
    #include <QtGui>
    #include "ui_MainWindow.h"
    #include "MainWindow.cpp"
    
     int main(int argc, char *argv[])
     {
         QApplication app(argc, argv);
         QWidget *widget = new QWidget;
         Ui::CalculatorForm ui;
         ui.setupUi(widget);
    
         widget->show();
         return app.exec();
     }
    
    

    MainWindow.cpp:
    #include <QApplication>
    #include <QtGui>
    #include "ui_MainWindow.h"
    #include "MainWindow.cpp"
    
     int main(int argc, char *argv[])
     {
         QApplication app(argc, argv);
         QWidget *widget = new QWidget;
         Ui::CalculatorForm ui;
         ui.setupUi(widget);
    
         widget->show();
         return app.exec();
     }
    
    

    mainwindow.h
    /********************************************************************************
    ** Form generated from reading ui file 'MainWindow.ui'
    **
    ** Created: Mon 13. Apr 19:32:35 2009
    **      by: Qt User Interface Compiler version 4.5.0
    **
    ** WARNING! All changes made in this file will be lost when recompiling ui file!
    ********************************************************************************/
    
    #ifndef UI_MAINWINDOW_H
    #define UI_MAINWINDOW_H
    
    #include <QtCore/QVariant>
    #include <QtGui/QAction>
    #include <QtGui/QApplication>
    #include <QtGui/QButtonGroup>
    #include <QtGui/QDial>
    #include <QtGui/QHeaderView>
    #include <QtGui/QMainWindow>
    #include <QtGui/QMenu>
    #include <QtGui/QMenuBar>
    #include <QtGui/QProgressBar>
    #include <QtGui/QSlider>
    #include <QtGui/QStatusBar>
    #include <QtGui/QWidget>
    
    QT_BEGIN_NAMESPACE
    
    class Ui_MainWindow
    {
    public:
        QAction *actionExit;
        QWidget *centralwidget;
        QSlider *horizontalSlider;
        QProgressBar *progressBar;
        QDial *dial;
        QProgressBar *progressBar_2;
        QMenuBar *menubar;
        QMenu *menuFiles;
        QStatusBar *statusbar;
    
        void setupUi(QMainWindow *MainWindow)
        {
            if (MainWindow->objectName().isEmpty())
                MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
            MainWindow->resize(512, 325);
            MainWindow->setDocumentMode(false);
            MainWindow->setTabShape(QTabWidget::Rounded);
            actionExit = new QAction(MainWindow);
            actionExit->setObjectName(QString::fromUtf8("actionExit"));
            centralwidget = new QWidget(MainWindow);
            centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
            horizontalSlider = new QSlider(centralwidget);
            horizontalSlider->setObjectName(QString::fromUtf8("horizontalSlider"));
            horizontalSlider->setGeometry(QRect(100, 30, 291, 19));
            horizontalSlider->setMaximum(100);
            horizontalSlider->setOrientation(Qt::Horizontal);
            progressBar = new QProgressBar(centralwidget);
            progressBar->setObjectName(QString::fromUtf8("progressBar"));
            progressBar->setGeometry(QRect(100, 80, 341, 23));
            progressBar->setValue(0);
            progressBar->setTextVisible(true);
            dial = new QDial(centralwidget);
            dial->setObjectName(QString::fromUtf8("dial"));
            dial->setGeometry(QRect(180, 150, 50, 64));
            dial->setStyleSheet(QString::fromUtf8("background-color: qradialgradient(spread:repeat, cx:0.5, cy:0.5, radius:0.077, fx:0.5, fy:0.5, stop:0 rgba(0, 169, 255, 147), stop:0.497326 rgba(0, 0, 0, 147), stop:1 rgba(0, 169, 255, 147));\n"
    "color: qconicalgradient(cx:0, cy:0, angle:135, stop:0 rgba(255, 255, 0, 69), stop:0.375 rgba(255, 255, 0, 69), stop:0.423533 rgba(251, 255, 0, 145), stop:0.45 rgba(247, 255, 0, 208), stop:0.477581 rgba(255, 244, 71, 130), stop:0.518717 rgba(255, 218, 71, 130), stop:0.55 rgba(255, 255, 0, 255), stop:0.57754 rgba(255, 203, 0, 130), stop:0.625 rgba(255, 255, 0, 69), stop:1 rgba(255, 255, 0, 69));"));
            dial->setMaximum(100);
            progressBar_2 = new QProgressBar(centralwidget);
            progressBar_2->setObjectName(QString::fromUtf8("progressBar_2"));
            progressBar_2->setGeometry(QRect(100, 210, 341, 23));
            progressBar_2->setValue(0);
            progressBar_2->setTextVisible(true);
            MainWindow->setCentralWidget(centralwidget);
            menubar = new QMenuBar(MainWindow);
            menubar->setObjectName(QString::fromUtf8("menubar"));
            menubar->setGeometry(QRect(0, 0, 512, 22));
            menuFiles = new QMenu(menubar);
            menuFiles->setObjectName(QString::fromUtf8("menuFiles"));
            MainWindow->setMenuBar(menubar);
            statusbar = new QStatusBar(MainWindow);
            statusbar->setObjectName(QString::fromUtf8("statusbar"));
            MainWindow->setStatusBar(statusbar);
    
            menubar->addAction(menuFiles->menuAction());
            menuFiles->addAction(actionExit);
    
            retranslateUi(MainWindow);
            QObject::connect(horizontalSlider, SIGNAL(sliderMoved(int)), progressBar, SLOT(setValue(int)));
            QObject::connect(dial, SIGNAL(valueChanged(int)), progressBar_2, SLOT(setValue(int)));
            QObject::connect(actionExit, SIGNAL(activated()), MainWindow, SLOT(close()));
    
            QMetaObject::connectSlotsByName(MainWindow);
        } // setupUi
    
        void retranslateUi(QMainWindow *MainWindow)
        {
            MainWindow->setWindowTitle(QApplication::translate("MainWindow", "Test", 0, QApplication::UnicodeUTF8));
            actionExit->setText(QApplication::translate("MainWindow", "Exit", 0, QApplication::UnicodeUTF8));
            menuFiles->setTitle(QApplication::translate("MainWindow", "Files", 0, QApplication::UnicodeUTF8));
        } // retranslateUi
    
    };
    
    namespace Ui {
        class MainWindow: public Ui_MainWindow {};
    } // namespace Ui
    
    QT_END_NAMESPACE
    
    #endif // UI_MAINWINDOW_H
    
    

    ... Si ça peut vous aider
    0
  3. Wazza6 Messages postés 202 Statut Membre 40
     
    et les erreurs:
    C:/Users/Administrator/Documents/CC++/Qt/texteditor/texteditor/main.cpp:10: error: `CalculatorForm' is not a member of `Ui'
    et d'autres erreurs qui découlent de celle là.
    0
  4. Wazza6 Messages postés 202 Statut Membre 40
     
    Repondez S.V.P programmer c'est tout ce que je fais dans une journée
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. serialtueur Messages postés 50 Statut Membre 80
     
    j'ai le même problème ...
    0
  7. serialtueur Messages postés 50 Statut Membre 80
     
    up pleaze
    0
  8. serialtueur Messages postés 50 Statut Membre 80
     
    re up :D
    0
  9. serialtueur Messages postés 50 Statut Membre 80
     
    :( je pense que si je redis up vous me tapez, mais bon ...
    0
  10. serialtueur Messages postés 50 Statut Membre 80
     
    5e up :p Serieusement j'ai besoin de votre aide svp, je galère ..
    0
  11. serialtueur Messages postés 50 Statut Membre 80
     
    Bon personne connait Qt ici ?
    0
  12. Wazza6 Messages postés 202 Statut Membre 40
     
    Ouais... bon le problème est règlé depuis Qt 4.5 grâce au miraculeux Qtcreator qui gère les .ui tout seul!
    Il suffit seulement de retirer le .ui du projet et de modifier le ui_mainwindow.h
    0
  13. serialtueur Messages postés 50 Statut Membre 80
     
    Que veux tu dire par là ? J'ai pas bien compris comment procéder. La pour l'instant j'ai mon main.cpp et mon ui_manwindows.h et enfin mon mainwindows.ui, j'en fait quoi ? D'habitude je compile avec qmake -project puis qmake et enfin make, mais la je dois procéder autrement ?
    0
  14. Wazza6 Messages postés 202 Statut Membre 40
     
    C'est facile si t'as Qt 4.5 sous windows... il vient avec Qt creator , tu l'ouvres et tu fais "create a new QT 4.5 project" , ensuite tu joues sur ton .ui dans ton projet . Quand tu as fait TOUT ce que tu voulais faire sur ton ui tu l'enleves tu projet et tu ajoutes le ui_mainwindow.h généré pour modifier les fonctions et ajouter des slots / signals...
    0
  15. serialtueur Messages postés 50 Statut Membre 80
     
    Nan mais c'est bon, ca venait d'une mauvaise conversion d'un Qdialog par un QWidget, j'ai remplacé QDialog par QWidget et ca a marché, merci !
    0