在c++中创建Qlabel子类
Issue Subclassing a Qlabel C++
我正在尝试使用头文件子类化QLabel,我在构造函数
上得到错误智能感知:不允许间接非虚拟基类
class foo : public QLabel
{
Q_OBJECT
foo(QWidget* parent = 0) : QWidget(parent)
{
}
void mouseMoveEvent( QMouseEvent * event )
{
//Capture this
}
};
有什么建议,为什么会发生这种情况,我如何修复它?
问题就在这里:
foo(QWidget* parent = 0) : QWidget(parent)
您继承了QLabel,但是您为基指定了QWidget
。你应该这样写:
explicit foo(QWidget* parent = Q_NULLPTR) : QLabel(parent)
// ^^^^^^
另外,请使用explicit
以及Q_NULL_PTR
或至少NULL
来代替0。
相关文章:
- 继承期间显示未知行为的子类
- 通过指向指针数组的指针访问子类的属性
- 从父类方法返回子类对象
- c++, 在子类中,如何在没有对象的情况下访问父类的方法?
- 将父类对象强制转换为子类的问题
- 避免在C++中重复子类定义
- 将QOpenGLWidget子类转换为使用Metal而不是OpenGL的子类是否可行?
- 如何初始化矢量的模板化子类
- C++ 继承:将子类传递给需要基类的函数并获取子类行为
- 有没有办法按值将纯抽象类的所有子类传递给 C++ 中的函数?
- 使用子类覆盖基类中定义的函数
- 子类地址等于虚拟基类地址?
- 将子类方法声明为基类的友元
- C++子类共享变量?
- 如何检查模板专用化是否是基本模板的子类?
- 仅让特定类'Fabric'构造类'Foo'及其所有子类的实例
- 使用模板参数重载C++方法:如何使其适用于模板的子类?
- 我可以显示根据需要创建的对象(QLabel 的子类)吗?(我遇到的问题是删除它)
- 子类化QLabel并在QWidget类中使用它
- 在c++中创建Qlabel子类