У меня есть следующий пример в Qt, в котором я пытаюсь переопределить keyPressEvent подкласса QTextEdit, но дает мне «множественное определение txt :: keyPressEvent (QKeyEvent *)», и я могу " т понять, почему:Переопределение ключаPressEvent в подклассе QTextEdit
//txt.h
#ifndef TXT_H
#define TXT_H
#include <QTextEdit>
class txt : public QTextEdit
{
Q_OBJECT
public:
txt(QWidget *parent = 0);
signals:
void keyPressEvent(QKeyEvent *e);
public slots:
};
#endif // TXT_H
//txt.cpp
#include "txt.h"
txt::txt(QWidget *parent) :
QTextEdit(parent)
{
}
void txt::keyPressEvent(QKeyEvent *e){
//do stuff with the key event
}
//main.cpp
#include <QtGui/QApplication>
#include "txt.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
txt w;
w.show();
return a.exec();
}
Я попытался вперед объявляя QTextEdit в txt.h и #including его только в CPP, но это дает мне некоторые другие ошибки (вероятно, потому, что мне нужен класс в заголовке, так как 'm subclassing it?)
В любом случае, что я делаю неправильно?
EDIT: Я также пробовал с другим классом (QLabel), и теперь я получаю ту же ошибку ...
Я не могу поверить, что все было так просто ... Большое спасибо за помощь! Ошибки компилятора C++ могут быть настолько загадочными :( –