QLineEdit 无法发信号

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

#include "widget.h"
#include <QMessageBox>
#include <QLineEdit>
#include <QHBoxLayout>
Widget::Widget(QWidget *parent) :
QWidget(parent)

{
QLineEdit *lineEdit=new QLineEdit;
connect(lineEdit,SIGNAL(textChanged(QString &)),this,SLOT(resetlineEdit(QString &)));

QHBoxLayout *rowLay=new QHBoxLayout;
rowLay->addWidget(lineEdit);
setLayout(rowLay);
}

Widget::~Widget()
{

}
void Widget::resetlineEdit(QString &)
{
QMessageBox::about(this,"about","xxxx");

}


感觉上面的代码好像没有问题啊,请问下,这个是为什么,谢谢!
...全文
169 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sno_guo 2012-05-21
  • 打赏
  • 举报
回复
刚才又做了一下,感觉应该这样才行。



connect(lineEdit,SIGNAL(textChanged(const QString &)),this,SLOT(resetlineEdit(const QString &)));


然后在槽函数中用
void Widget::resetlineEdit(const QString &string)
{
//QMessageBox::about(this,"about","xxxx");
qDebug()<<string;
if(string.length()>16)
lineEdit->clear();
}

感觉这样这个textChanged中的string才有作用,不然我要textChanged有什么用呢,呵呵,谢谢各位了, 下班后,在公交车上想到的,呵呵
我是学友 2012-05-21
  • 打赏
  • 举报
回复
connect(lineEdit,SIGNAL(textChanged(QString)),this,SLOT(resetlineEdit(QString)));试试
shen_wei 2012-05-21
  • 打赏
  • 举报
回复
void QLineEdit::textEdited ( const QString & text ) [signal]
lwtlwt0810 2012-05-21
  • 打赏
  • 举报
回复
没有textChanged(QString &) 只有textChanged(QString)
lwtlwt0810 2012-05-21
  • 打赏
  • 举报
回复
没有这个textChanged(QString &)信号 只有textChanged(QString)

16,215

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧