Qt Creatorを使用して、Qtにカスタムスロットを持つクラスを作成しています。
class CustomEdit : public QTextEdit
{
Q_OBJECT
public:
CustomEdit(QWidget* parent);
public slots:
void onTextChanged ();
};
ただし、次のリンカーエラーが発生します。
undefined reference to 'vtable for CustomEdit'
ドキュメントには次のように書かれています。
「LcdNumberのvtableへの未定義の参照」の行に沿ってコンパイラエラーが発生した場合は、mocを実行するか、moc出力をlinkコマンドに含めるのを忘れている可能性があります。
...しかし、それが何を意味するのかは明らかではありません。
クラスまたは.proファイルに追加する必要があるものはありますか?
編集-これが私の.proファイルです:
QT+=ネットワーク\ 脚本 \ webkit \ xml TARGET = MyApp テンプレート=アプリ ソース+=main.cpp \ MainWindow.cpp \ CustomEdit.cpp HEADERS + = MainWindow.h \ CustomEdit.h フォーム+=mainwindow.ui
編集:
この質問は同じ問題を扱っていますが、QtCreatorでこの問題を修正する方法が答えではわかりません。リンクするファイルのリストに、mocで生成された.cppファイルを明示的に追加する必要がありますか?それは苦痛のようです。