Я хотел бы создать свой CustomQSpinBox.Qt inherit QSpinBox и QPushButton
Этот CustomQSpinBox должен наследоваться от QPushButton и QSpinBox , но когда я скомпилировать этот код:
#include <QSpinBox>
#include <QPushButton>
class CustomQSpinBox : public QSpinBox, public QPushButton
{
Q_OBJECT
public:
CustomQSpinBox (QWidget *parent = 0);
~CustomQSpinBox();
void initMinMax(int min, int max);
void init();
signals:
void needNumpad();
public slots:
void clicked();
};
Я получаю сообщение об ошибке:
ERREUR: C2594: «static_cast'ÿ: преобразование ambigu ‰ s-де 'QObject *' ан 'CustomQSpinBox *
Как я должен сделать мое наследство?
почему именно вы унаследованы из двух классов (как происходящий от QObject, давая вам свою ошибку ... «проблемы с бриллиантом» HTTP: //en.wikipedia .org/wiki/Multiple_inheritance)? Вы должны получить только из QSpinBox (или, если быть точнее, один класс CustomSpinBox, унаследованный от QSpinBox и один CustomPushButton из QPushButton, если это необходимо) – Najzero
Мне нужно знать, когда пользователь нажимает QSpinBox. QSpinBox имеет ButtonSymbols = noButton – artoon
, тогда вы можете полностью полагаться на стандартные QObjects и использовать систему сигналов/слотов qt (установить сигнал valueChanged() в слот вашего желания). См. Сигналы http://qt-project.org /doc/qt-4.8/qspinbox.html здесь и сигнал/слот, объясненный здесь: http://qt-project.org/doc/qt-4.8/signalsandslots.html – Najzero