Rechercher : dans
Par :

Probleme compilation Qt avec fichiers .ui

Dernière réponse le 30 jui 2009 à 08:46:49 Wazza6, le 14 avr 2009 à 02:16:49 
 Signaler ce message aux modérateurs

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+

Meilleures réponses pour « Probleme compilation Qt avec fichiers .ui » dans :
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
Télécharger CHM WorkShop VoirLorsque vous devez enregistrer une page web, vous ne savez jamais quel est le bon format à utiliser pour ne rien perdre des images qui sont sur la page. CHM WorkShop est un compilateur de fichiers HTML. Sa principale fonctionnalité est la possibilité...
Fichier ISO (Image ISO) VoirFormat ISO Un fichier possédant l'extension .ISO est une image ISO, c'est-à-dire une image d'un disque (CD, DVD ou disque dur) sous forme de fichier, créer avec un logiciel de gravure. Comment lire un fichier ISO ? En l'absence de graveur, il...
Apache - Les fichiers .htaccess VoirLes fichiers .htaccess sont des fichiers de configuration d'Apache, permettant de définir des règles dans un répertoire et dans tous ses sous-répertoires (qui n'ont pas de tel fichier à l'intérieur). On peut les utiliser pour protéger un répertoire...
Formats et extensions de fichiers VoirRemarque : La liste ci-dessous n'est pas exhaustive et certains noms d'extension peuvent avoir plusieures fonctionnalités. Quant aux programmes proposés pour utiliser ces fichiers, ils ne sont pas forcément les seuls, ni les plus...

1

francis, le 14 avr 2009 à 10:54:38

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

Répondre à francis

2

Wazza6, le 14 avr 2009 à 15:04:19

"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 Regardez ma devise!

Répondre à Wazza6

3

Wazza6, le 14 avr 2009 à 15:06:46

Et les erreurs:
C:/Users/Administrator/Documents/CC++/Qt/texteditor/textedit­or/main.cpp:10: error: `CalculatorForm' is not a member of `Ui'
et d'autres erreurs qui découlent de celle là.
Regardez ma devise!

Répondre à Wazza6

4

Wazza6, le 14 avr 2009 à 23:11:04

Repondez S.V.P programmer c'est tout ce que je fais dans une journée Regardez ma devise!

Répondre à Wazza6

5

serialtueur, le 21 mai 2009 à 17:29:33

J'ai le même problème ...

Répondre à serialtueur

6

serialtueur, le 25 mai 2009 à 15:56:39

Up pleaze

Répondre à serialtueur

7

serialtueur, le 29 mai 2009 à 22:24:57

Re up :D

Répondre à serialtueur

8

serialtueur, le 12 jun 2009 à 07:29:26

:( je pense que si je redis up vous me tapez, mais bon ...

Répondre à serialtueur

9

serialtueur, le 15 jun 2009 à 10:05:57

5e up :p Serieusement j'ai besoin de votre aide svp, je galère ..

Répondre à serialtueur

10

serialtueur, le 27 jun 2009 à 14:59:35

Bon personne connait Qt ici ?

Répondre à serialtueur

11

Wazza6, le 13 jui 2009 à 23:06:50

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 Regardez ma devise!

Répondre à Wazza6

12

serialtueur, le 29 jui 2009 à 08:46:39

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 ?

Répondre à serialtueur

13

Wazza6, le 29 jui 2009 à 17:16:44

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... Regardez ma devise!

Répondre à Wazza6

14

 serialtueur, le 30 jui 2009 à 08:46:49

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 !

Répondre à serialtueur