Integration qwt dans qtcreator

Sur une machine avec squeeze je n’arrive pas à compiler une application avec les widgets de qwt sous qtcreator.

dmon@squeezeevo:~$ aptitude search qwt i libqwt-dev - Qt widgets library for technical applicati i libqwt-doc - Qt widgets library for technical applicati i A libqwt4c2 - Qt widgets library for technical applicati p libqwt5-doc - Qt widgets library for technical applicati p libqwt5-qt3 - Qt3 widgets library for technical applicat p libqwt5-qt3-dev - Qt3 widgets library for technical applicat i libqwt5-qt4 - Qt4 widgets library for technical applicat i libqwt5-qt4-dev - Qt4 widgets library for technical applicat p libqwtplot3d-doc - 3D plotting library based on Qt/OpenGL (do p libqwtplot3d-qt3-0 - 3D plotting library based on Qt3/OpenGL (r p libqwtplot3d-qt3-dev - 3D plotting library based on Qt3/OpenGL (d i libqwtplot3d-qt4-0 - 3D plotting library based on Qt4/OpenGL (r i libqwtplot3d-qt4-dev - 3D plotting library based on Qt4/OpenGL (d p python-qwt3d-doc - Documentation for the Python-qwt3d library p python-qwt3d-qt3 - Python bindings of the QwtPlot3D library p python-qwt3d-qt4 - Python bindings of the QwtPlot3D library p python-qwt5-doc - Python version of the Qwt5 technical widge p python-qwt5-qt3 - Python version of the Qwt5 technical widge p python-qwt5-qt4 - Python version of the Qwt5 technical widge dmon@squeezeevo:~$

À la compilation j’ai quand même ça

dmon@squeezeevo:~/src/qinstrumentation$ ls dialog.cpp dialog.ui main.o qinstrumentation.pro ui_dialog.h dialog.h main.cpp Makefile qinstrumentation.pro.user dmon@squeezeevo:~/src/qinstrumentation$ make g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/qwt -I. -I. -o dialog.o dialog.cpp In file included from /usr/include/qwt/qwt_scldiv.h:14, from /usr/include/qwt/qwt_scldraw.h:19, from /usr/include/qwt/qwt_sclif.h:14, from /usr/include/qwt/qwt_knob.h:15, from ui_dialog.h:19, from dialog.cpp:2: /usr/include/qwt/qwt_array.h:25:23: error: qmemarray.h: Aucun fichier ou dossier de ce type In file included from /usr/include/qwt/qwt_knob.h:14, from ui_dialog.h:19, from dialog.cpp:2: /usr/include/qwt/qwt_sldbase.h:53: error: ‘Orientation’ has not been declared /usr/include/qwt/qwt_sldbase.h:54: error: ‘Orientation’ does not name a type In file included from /usr/include/qwt/qwt_dimap.h:14, from /usr/include/qwt/qwt_scldraw.h:18, from /usr/include/qwt/qwt_sclif.h:14, from /usr/include/qwt/qwt_knob.h:15, from ui_dialog.h:19, from dialog.cpp:2: /usr/include/qwt/qwt_math.h: In function ‘void qwtShiftArray(T*, int, int)’: /usr/include/qwt/qwt_math.h:162: error: there are no arguments to ‘QABS’ that depend on a template parameter, so a declaration of ‘QABS’ must be available /usr/include/qwt/qwt_math.h:162: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated) In file included from /usr/include/qwt/qwt_scldraw.h:19, from /usr/include/qwt/qwt_sclif.h:14, from /usr/include/qwt/qwt_knob.h:15, from ui_dialog.h:19, from dialog.cpp:2: /usr/include/qwt/qwt_scldiv.h: At global scope: /usr/include/qwt/qwt_scldiv.h:128: error: ISO C++ forbids declaration of ‘QMemArray’ with no type /usr/include/qwt/qwt_scldiv.h:128: error: expected ‘;’ before ‘<’ token /usr/include/qwt/qwt_scldiv.h:129: error: ISO C++ forbids declaration of ‘QMemArray’ with no type /usr/include/qwt/qwt_scldiv.h:129: error: expected ‘;’ before ‘<’ token /usr/include/qwt/qwt_scldiv.h: In member function ‘uint QwtScaleDiv::minCnt() const’: /usr/include/qwt/qwt_scldiv.h:91: error: ‘d_minMarks’ was not declared in this scope /usr/include/qwt/qwt_scldiv.h: In member function ‘uint QwtScaleDiv::majCnt() const’: /usr/include/qwt/qwt_scldiv.h:96: error: ‘d_majMarks’ was not declared in this scope /usr/include/qwt/qwt_scldiv.h: In member function ‘double QwtScaleDiv::majMark(int) const’: /usr/include/qwt/qwt_scldiv.h:105: error: ‘d_majMarks’ was not declared in this scope /usr/include/qwt/qwt_scldiv.h: In member function ‘double QwtScaleDiv::minMark(int) const’: /usr/include/qwt/qwt_scldiv.h:107: error: ‘d_minMarks’ was not declared in this scope In file included from /usr/include/qwt/qwt_sclif.h:14, from /usr/include/qwt/qwt_knob.h:15, from ui_dialog.h:19, from dialog.cpp:2: /usr/include/qwt/qwt_scldraw.h: At global scope: /usr/include/qwt/qwt_scldraw.h:105: error: ‘QWMatrix’ does not name a type make: *** [dialog.o] Erreur 1 dmon@squeezeevo:~/src/qinstrumentation$

Je précise que j’ai rajouté les lignes LIBS et INCPATH pour obtenir ce résultat.

[code]dmon@squeezeevo:~/src/qinstrumentation$ cat qinstrumentation.pro
#-------------------------------------------------

Project created by QtCreator 2010-07-08T12:09:02

#-------------------------------------------------

TARGET = qinstrumentation
TEMPLATE = app

SOURCES += main.cpp
dialog.cpp

HEADERS += dialog.h

FORMS += dialog.ui

LIBS += lqwt

INCPATH += /usr/include/qwt
[/code]

On peut quand même remarquer que qtcreator intègre mal les fichiers d’en tête de qwt.

[code]dmon@squeezeevo:~/src/qinstrumentation$ cat ui_dialog.h
/********************************************************************************
** Form generated from reading UI file ‘dialog.ui’
**
** Created: Thu Jul 8 12:10:42 2010
** by: Qt User Interface Compiler version 4.6.3
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/

#ifndef UI_DIALOG_H
#define UI_DIALOG_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QDialog>
#include <QtGui/QHeaderView>
#include “qwt_knob.h”
#include “qwt_wheel.h”

QT_BEGIN_NAMESPACE

class Ui_Dialog
{
public:
QwtKnob *Knob;
QwtWheel *Wheel;

void setupUi(QDialog *Dialog)
{
    if (Dialog->objectName().isEmpty())
        Dialog->setObjectName(QString::fromUtf8("Dialog"));
    Dialog->resize(600, 400);
    Knob = new QwtKnob(Dialog);
    Knob->setObjectName(QString::fromUtf8("Knob"));
    Knob->setGeometry(QRect(40, 100, 126, 126));
    Wheel = new QwtWheel(Dialog);
    Wheel->setObjectName(QString::fromUtf8("Wheel"));
    Wheel->setGeometry(QRect(250, 140, 221, 81));

    retranslateUi(Dialog);

    QMetaObject::connectSlotsByName(Dialog);
} // setupUi

void retranslateUi(QDialog *Dialog)
{
    Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", 0, QApplication::UnicodeUTF8));
} // retranslateUi

};

namespace Ui {
class Dialog: public Ui_Dialog {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_DIALOG_H
[/code]