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
A voir également:

14 réponses

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
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
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
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

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

Posez votre question
serialtueur Messages postés 50 Statut Membre 80
 
j'ai le même problème ...
0
serialtueur Messages postés 50 Statut Membre 80
 
up pleaze
0
serialtueur Messages postés 50 Statut Membre 80
 
re up :D
0
serialtueur Messages postés 50 Statut Membre 80
 
:( je pense que si je redis up vous me tapez, mais bon ...
0
serialtueur Messages postés 50 Statut Membre 80
 
5e up :p Serieusement j'ai besoin de votre aide svp, je galère ..
0
serialtueur Messages postés 50 Statut Membre 80
 
Bon personne connait Qt ici ?
0
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
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
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
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