【发布时间】:2016-05-23 17:20:36
【问题描述】:
我有一个相对简单的类,其中包含一个布局,其中包含一些显示为卡片的小部件(标签、lineEdits、pushButtons)。在我尝试添加信号和插槽之前,一切正常。下面的头文件可以很好地编译,如图所示,注释掉的部分。
#include <QString>
#include <QObject>
#include <QWidget>
class KMLFile //: public QObject
{
//Q_OBJECT
public:
KMLFile();
~KMLFile();
QString m_originalFilename;
QString m_originalPath;
QString m_proposedFilename;
QString m_propsoedPath;
QString m_coords;
QWidget* trackWidget;
void populate(QString originalFilename, QString originalPath, QString proposedFilename, QString coords);
QString getCoords();
int getLength();
//public slots:
//void changeFilename();
};
当留下这些代码时,我收到以下错误:
“C:...\qlist.h:425: 错误: C2280: 'KMLFile::KMLFile(const KMLFile &)': 试图引用已删除的函数
我正在使用 Qt5.3 和 Qt Creator。我试过清理、运行 qmake 和删除构建文件夹无济于事。我被难住了!
感谢任何有关如何解决此问题的见解,以便我能够取得进展。
【问题讨论】:
-
如果不从 QObject 继承、不使用 Q_OBJECT 宏并通过“moc”元对象编译器运行代码,则无法使用 Qt 的信号/插槽机制。