【发布时间】:2011-09-13 16:12:03
【问题描述】:
C:/Qt/.../mymodel.h:-1: 在成员函数'void MainWindow::createModel()'中:
错误:'myModel::myModel(QObject*)' 是私有的
错误:在此上下文中
mymodel.h:
#ifndef MYMODEL_H
#define MYMODEL_H
#include <QStandardItemModel>
class myModel : public QStandardItemModel
{
public:
Q_OBJECT
myModel(QObject *parent = 0);
};
#endif // MYMODEL_H
mymodel.cpp:
#include "mymodel.h"
myModel::myModel(QObject *parent) :
QStandardItemModel(parent)
{
}
mainwindow.h
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow();
private slots:
...
signals:
...
private:
...
myModel *model;
};
mainwindow.cpp:
void MainWindow::createModel()
{
model = new myModel(this);
谢谢。
【问题讨论】:
-
在此处的文档中:doc.trolltech.com/4.5/moc.html#moc 和您的 mainwindow.h 中,我看到了在
public:之前使用的 Q_OBJECT。在 mymodel.h 中,public:后面有它。宏是否有可能重新引入private:?尝试将它移到public:之前,看看它是否能解决您的问题。
标签: qt constructor private