Я пытаюсь создать подкласс QEditLine, чтобы я мог определить новый сигнал, который отправляет идентификатор объекта. В данный момент я подключаю родительский сигнал к слоту в новом классе, и из этого слота я посылаю правильный новый сигнал с дополнительным идентификатором объекта.
Я не могу понять одну вещь. Проблема в том, что я не знаю, как определить новую функцию сигнала. Я не знаю, что я должен положить туда. Я имею в виду, что знаю его аргументы, но я не знаю, что он должен делать как функция. Я делаю это впервые, и это может выглядеть очень глупо, но я действительно застрял там>.<,
Может кто-нибудь, пожалуйста, предоставьте некоторые подсказки. Это, наверное, очень простая проблема.
Спасибо
// myqeditline.h
#ifndef MYQEDITLINE_H
#define MYQEDITLINE_H
#include <QWidget>
#include <QLineEdit>
#include <QString>
class MyQEditLine : public QLineEdit
{
Q_OBJECT
public:
explicit MyQEditLine(const QString& n, QWidget *parent = 0);
protected:
QString name;
signals:
void textChanged(QString textCHanged, QString sender);
protected slots:
public slots:
void myTextChanged(QString textChanged);
};
#endif // MYQEDITLINE_H
// myqeditline.cpp
#include "myqeditline.h"MyQEditLine::MyQEditLine(const QString &n, QWidget *parent)
: QLineEdit(parent),name(n) {
connect(this,SIGNAL(textChanged(QString)),this,SLOT(myTextChanged(QString)));
}
void MyQEditLine::myTextChanged(QString textChanged) {
emit textChanged(QString textChanged, QString name);
}
Я только что понял, что ответ на мой вопрос об этом Qt Project веб-сайт, в разделе «Сигналы», в 4-м пункте. Это говорит:Сигналы автоматически генерируются MOC и не должен быть реализован в файле .cpp. Они никогда не могут иметь возвращаемых типов (то есть использовать недействительным).«
Других решений пока нет …