QEditLine的子类与新的SIGNAL

时间:2012-09-16 21:24:02

标签: c++ qt qt4 qt-signals

我正在尝试子类化QEditLine,以便我可以定义一个发送对象标识符的新SIGNAL。此时,我将父信号连接到新类中的插槽,并从该插槽中发出带有附加对象标识符的正确新信号。 我无法理解一件事。问题是我不知道如何定义一个新的信号函数本身。我不知道应该放在那里。我的意思是我知道它的论点,但我不知道它应该做什么作为一个功能。我这是第一次这样做,看起来可能很傻;但是我真的卡在那里>。<。 任何人都可以提供一些线索。这可能是一个非常容易的问题。

由于

// 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);
}

1 个答案:

答案 0 :(得分:1)

我刚刚意识到我的问题的答案在第Qt Project网站上,在第4段中有关“信号”的部分。它说:“信号由 moc 自动生成,不得在.cpp文件中实现。它们永远不会有返回类型(即使用 void