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是不带参数的函数名。
我在别的程序中突然发现,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是不带参数的函数名。
相关文章推荐
- 如何处理源dump文件的mscordacwks.dll文件与调试机上的版本不一致问题而无法使用extension cmd的问题
- ARM JTAG 信号 RTCK 应该如何处理?
- 遇到一个IE升级到IE8之后脚本无法跑的问题。那么对于这样的问题,我们需要如何去处理?
- 如何处理xencenter中无法显示vm的performance信息 推荐
- 程桌面进行远程管理服务器遇到远程桌面登陆服务器后显示黑屏,或无法显示桌面,如何处理?
- 创新谈-如何处理DataGuard环境中万一网络失败将导致的Primary库短时间内无法正常工作的问题-张乐奕
- JQuery下focus()无法自动获取焦点的处理方法 jquery如何使文本框获得焦点
- 笔记本能搜到无线信号,无法连接上网如何解决
- 如何处理更改计算机名称导致oracle无法启动
- 如何处理xencenter中无法显示vm的performance信息
- Linux 多线程应用中如何编写安全的信号处理函数
- Linux 多线程应用中如何编写安全的信号处理函数
- 如何去处理 li,dt,dd等引起的无法显示背景的bug呢。
- 如何处理更改计算机名称导致oracle无法启动
- 程序无法卸载如何处理
- WinXP下CHM无法打开如何处理
- VS2005无法创建MFC智能设备如何处理
- Linux 多线程应用中如何编写安全的信号处理函数
- Linux 多线程应用中如何编写安全的信号处理函数
- 无法正确显示物理内存大小该如何处理