c++ - 带有新 SIGNAL 的 QEditLine 的子类

标签 c++ qt qt4 qt-signals

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

谢谢

// 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 文件中实现。它们永远不能有返回类型(即使用 void) .

关于c++ - 带有新 SIGNAL 的 QEditLine 的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12450844/

相关文章:

c++ - 体系结构 x86_64 的 undefined symbol 。我的代码有什么问题?

c++ - 如何禁用QT中的最大化按钮?

c++ - Qt 框架适用于此 Windows 和 Mac GUI?

c++ - 获取应用程序的 Widgets 树

python - Tensorflow 为张量创建 Protobuf

c++ - 构造函数的重新定义

c++ - 从 Win32 项目中的 *.bmp 文件加载 HBITMAP

qt4 - 是否有使用 PId 停止和暂停 mplayer 的命令?

c++ - 如何将 QMetaMethod 与 QObject::connect 一起使用

qt4 - .TS 文件中的 QT Linguist 短语手册