我试图使用头文件子类化QLabel,我在构造函数上得到错误
IntelliSense:不允许使用间接非虚拟基类
class foo : public QLabel
{
Q_OBJECT
foo(QWidget* parent = 0) : QWidget(parent)
{
}
void mouseMoveEvent( QMouseEvent * event )
{
//Capture this
}
};
为什么会发生这种情况以及我如何解决这个问题的任何建议?
答案 0 :(得分:2)
问题在于:
foo(QWidget* parent = 0) : QWidget(parent)
您继承自 QLabel ,但您为基地指定了QWidget
。你应该写这个内容:
explicit foo(QWidget* parent = Q_NULLPTR) : QLabel(parent)
// ^^^^^^
另外,请使用explicit
作为该构造函数以及Q_NULL_PTR
或至少NULL
而不是0。