使用Qt创建者,我Qt中产生具有定制的插槽的一类:


class CustomEdit : public QTextEdit
{
    Q_OBJECT

public:
    CustomEdit(QWidget* parent);

public slots:
    void onTextChanged ();
};

不过,我得到这个连接错误:

undefined reference to 'vtable for CustomEdit'

文档说:

  

如果你相处的“未定义的引用虚函数表的LcdNumber”行编译器错误,你可能已经忘记了运行MOC或包括在链接命令商务部输出。

...但它是不是很明显这是什么意思。

有什么我需要添加到我的课,或者到.pro文件?

修改 - 这是我的pro文件:

QT += network \
    script \
    webkit \
    xml
TARGET = MyApp
TEMPLATE = app
SOURCES += main.cpp \
    MainWindow.cpp \
    CustomEdit.cpp 
HEADERS += MainWindow.h \
    CustomEdit.h
FORMS += mainwindow.ui

修改

这个问题与优惠同样的问题,但答案不说清楚我该如何解决Qt Creator中这个问题。我需要商务部生成的.cpp文件明确添加到我的文件列表进行联系?这似乎是一个疼痛。

有帮助吗?

解决方案

Qt的创建者是被用来创建的Qt项目的IDE。就这样。但是QMAKE让你打造专业化的项目。从 qmake的手动

<强> qmake的自动操作产生的生成文件使得需要的信息只有几行创建每个生成文件。 QMAKE基于在项目文件中的信息来生成一个Makefile。 qmake的包含额外的功能,使用Qt支持发展,自动包括用于MOC和UIC生成规则。

您别有单独包括您MOC文件,但你必须运行QMAKE其中包含了所有必需的MOC文件的信息。在QMAKE后产生Makefile.debugMakefile.release看看,你可以找到所有的MOC文件将包含你。

现在到Qt Creator中运行的qmake,只要到Build->RebuildAll其中将运行的qmake和所有的(MOC)文件将被产生和链接(在Makefile.debug),以及

希望这将elimate您的未定义的引用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top