Probleme compilation Qt avec fichiers .ui

Résolu/Fermé
Wazza6 Messages postés 180 Date d'inscription lundi 31 décembre 2007 Statut Membre Dernière intervention 21 juillet 2012 - 14 avril 2009 à 02:16
serialtueur Messages postés 49 Date d'inscription mardi 25 novembre 2008 Statut Membre Dernière intervention 22 octobre 2009 - 30 juil. 2009 à 08:46
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
A voir également:

14 réponses

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
Wazza6 Messages postés 180 Date d'inscription lundi 31 décembre 2007 Statut Membre Dernière intervention 21 juillet 2012 40
14 avril 2009 à 15:04
"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
Wazza6 Messages postés 180 Date d'inscription lundi 31 décembre 2007 Statut Membre Dernière intervention 21 juillet 2012 40
14 avril 2009 à 15:06
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
Wazza6 Messages postés 180 Date d'inscription lundi 31 décembre 2007 Statut Membre Dernière intervention 21 juillet 2012 40
14 avril 2009 à 23:11
Repondez S.V.P programmer c'est tout ce que je fais dans une journée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
serialtueur Messages postés 49 Date d'inscription mardi 25 novembre 2008 Statut Membre Dernière intervention 22 octobre 2009 80
21 mai 2009 à 17:29
j'ai le même problème ...
0
serialtueur Messages postés 49 Date d'inscription mardi 25 novembre 2008 Statut Membre Dernière intervention 22 octobre 2009 80
25 mai 2009 à 15:56
up pleaze
0
serialtueur Messages postés 49 Date d'inscription mardi 25 novembre 2008 Statut Membre Dernière intervention 22 octobre 2009 80
29 mai 2009 à 22:24
re up :D
0
serialtueur Messages postés 49 Date d'inscription mardi 25 novembre 2008 Statut Membre Dernière intervention 22 octobre 2009 80
12 juin 2009 à 07:29
:( je pense que si je redis up vous me tapez, mais bon ...
0
serialtueur Messages postés 49 Date d'inscription mardi 25 novembre 2008 Statut Membre Dernière intervention 22 octobre 2009 80
15 juin 2009 à 10:05
5e up :p Serieusement j'ai besoin de votre aide svp, je galère ..
0
serialtueur Messages postés 49 Date d'inscription mardi 25 novembre 2008 Statut Membre Dernière intervention 22 octobre 2009 80
27 juin 2009 à 14:59
Bon personne connait Qt ici ?
0
Wazza6 Messages postés 180 Date d'inscription lundi 31 décembre 2007 Statut Membre Dernière intervention 21 juillet 2012 40
13 juil. 2009 à 23:06
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
serialtueur Messages postés 49 Date d'inscription mardi 25 novembre 2008 Statut Membre Dernière intervention 22 octobre 2009 80
29 juil. 2009 à 08:46
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
Wazza6 Messages postés 180 Date d'inscription lundi 31 décembre 2007 Statut Membre Dernière intervention 21 juillet 2012 40
29 juil. 2009 à 17:16
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
serialtueur Messages postés 49 Date d'inscription mardi 25 novembre 2008 Statut Membre Dernière intervention 22 octobre 2009 80
30 juil. 2009 à 08:46
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