您的位置:首页 > 其它

QLineEdit 无法发信号,该如何处理

2015-02-27 11:32 169 查看
QLineEdit无法发信号

我在别的程序中突然发现,QLineEdit无法发射信号,特意测试一下,代码如下:

#ifndef ABC_H

#define ABC_H

#include <QtGui/QWidget>

#include "ui_abc.h"

class abc : public QWidget

{

Q_OBJECT

public:

abc(QWidget*parent = 0, Qt::WFlags flags = 0);

~abc();

public slots:

voidabcdef(const QString& text);

private:

Ui::abcClassui;

QStringm_strTemp;

};

#endif // ABC_H

#include "abc.h"

abc::abc(QWidget *parent, Qt::WFlags flags)

:QWidget(parent, flags)

{

ui.setupUi(this);

connect(ui.lineEdit,SIGNAL(textChanged(const QString&
temp)),this,SLOT(abcdef(const QString& text)));

}

abc::~abc()

{

}

void abc::abcdef(const QString& text)

{

m_strTemp= text;

}

感觉上面的代码好像没有问题啊,请问下,这个是为什么,谢谢!

解决方法:

将connect(ui.lineEdit,SIGNAL(textChanged(const QString& temp)),this,SLOT(abcdef(const QString&
text)));
改为connect(ui.lineEdit,SIGNAL(textChanged(const QString&)),this,SLOT(abcdef(const QString&)));
原因:
connect(sender,SIGNAL(signal),receiver,SLOT(slot));
这里signal和slot是不带参数的函数名。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: