Qt从QWidget继承

时间:2011-12-26 08:19:50

标签: qt subclassing

我从QWidget编写自己的类子类 这是我的头文件

#ifndef GRAPHMATRIX_H
#define GRAPHMATRIX_H

#include "treemodel.h"
#include <QWidget>
#include <Qt/qtableview.h>

class GraphMatrix : public QWidget
{
    Q_OBJECT
public:
    TreeModel& getModel();
    GraphMatrix(QWidget* parent = 0);
    void addTop(QString name);
    void cutComponent(GraphMatrix* component, QVector<int> columns);
private:
    TreeModel model;
    QTableView* view;
public slots:
    void changeValue(const QModelIndex& index);
};

#endif // GRAPHMATRIX_H

我收到此错误

error C2248: 'QWidget::QWidget' : cannot access private member declared in class 'QWidget'

任何人都可以帮助我吗?

更新添加:我找到答案,问题是在QList中我必须写QList。因为QList使用的是复制构造函数。感谢您抽出时间解决我的问题

2 个答案:

答案 0 :(得分:1)

看起来你正试图调用私有的QWidget的默认构造函数。相反,您的构造函数需要调用QWidget的公共构造函数,如下所示:

GraphMatrix::GraphMatrix(QWidget* parent) : QWidget(parent) {}

答案 1 :(得分:0)

我找到答案,问题是在QList中我必须写QList。因为QList使用的是复制构造函数。感谢您抽出时间解决我的问题