J'ai essayé de résumer au maximum le problème...
Projet sous QtCreator, basé sur une QDialog.
A l'intérieur de cette QDialog, avec QtDesigner (intégré) je crée un widget de type QSpinBox que je promote en QSpinBoxColoured...
la déclaration de la classe QSpinBoxColoured est la suivante:
Lors de la compilation, j'ai droit à l'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #ifndef QSPINBOXCOLOURED_H #define QSPINBOXCOLOURED_H #include <QSpinBox> class QSpinBoxColoured : public QSpinBox { Q_OBJECT public: QSpinBoxColoured(QWidget *&W): QSpinBox(W) {} }; #endif // QSPINBOXCOLOURED_H
lors de la compilation de la ligne (autogénérée) de ui_dialog.h:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ui_dialog.h: In member function `void Ui_DialogClass::setupUi(QDialog*)': ui_dialog.h:32: error: no matching function for call to `QSpinBoxColoured::QSpinBoxColoured(QDialog*&)' qspinboxcoloured.h:7: note: candidates are: QSpinBoxColoured::QSpinBoxColoured(const QSpinBoxColoured&) qspinboxcoloured.h:10: note: QSpinBoxColoured::QSpinBoxColoured(QWidget*&)
Pourtant, une QDialog dérive d'un QWidget, donc un casting implicite devrait être fait... Une idée?
Code : Sélectionner tout - Visualiser dans une fenêtre à part spinBox = new QSpinBoxColoured(DialogClass);
Partager