• 9829阅读
  • 8回复

[提问]求助:QObject::connect: No such signal QTextEdit::textChange(const QString &) in ..\f\m [复制链接]

上一主题 下一主题
离线xinshou5
 

只看楼主 倒序阅读 楼主  发表于: 2017-03-23


void MainWindow::on_Connect_clicked(){    connect(ui->m_edit_input,SIGNAL(textChange(const QString &)),ui->m_edit_show,SLOT(setText(const QString &)));}
编译错误,但点击按钮响应connect时候提示:QObject::connect: No such signal QTextEdit::textChange(const QString &) in [url]..\f\mainwindow.cpp:18[/url]

我用的QT5.8版本,请大侠分析下原因。
离线太阳真圆

只看该作者 1楼 发表于: 2017-03-23
qmake,rebuild 一下
离线dbzhang800

只看该作者 2楼 发表于: 2017-03-23
首先,错误信息给的非常明确。你认真看一下自然就会知道你哪儿拼写错了。

其次,都Qt5.8,建议使用新式信号槽的写法。使用新式信号槽不会出现“信号或槽函数名"写错了编译器不管的问题
离线xinshou5

只看该作者 3楼 发表于: 2017-03-23
十分感谢回答,书上的例程 ,我再仔细看看
离线xinshou5

只看该作者 4楼 发表于: 2017-03-23
完全按照书上写的,没发现错误啊
离线kimtaikee

只看该作者 5楼 发表于: 2017-03-23
回 xinshou5 的帖子
xinshou5:完全按照书上写的,没发现错误啊 (2017-03-23 19:47)

正确的信号是textChanged,你漏写了d。BTW,正如DBZhang所说,采用新式的信号槽连接方式会在编译时给出错误,快速找到问题所在,所以推荐新式连接方式,如下
  1. connect(editInput, &QTextEdit::textChanged, editShow, &QLabel::setText);


离线xinshou5

只看该作者 6楼 发表于: 2017-03-23
回 kimtaikee 的帖子
kimtaikee:正确的信号是textChanged,你漏写了d。BTW,正如DBZhang所说,采用新式的信号槽连接方式会在编译时给出错误,快速找到问题所在,所以推荐新式连接方式,如下
connect(editInput, &QTextEdit::textChanged, editShow, &QLabel::setText);
 (2017-03-23 20:07) 

谢谢指正, 无论是老的语法还是新的语法都不管用,甚至把textChanged写错,编译的时候也不提示错误,只是运行的时候提示没有信号。
离线dbzhang800

只看该作者 7楼 发表于: 2017-03-23
回 xinshou5 的帖子
xinshou5:谢谢指正, 无论是老的语法还是新的语法都不管用,甚至把textChanged写错,编译的时候也不提示错误,只是运行的时候提示没有信号。 (2017-03-23 21:28) 

说明你压根就去试试新语法
离线never_forget

只看该作者 8楼 发表于: 2017-03-24
首先,清理一发工程,然后 在头文件中加上Q_OBJECT宏,否则,无法使用信号与槽的哦!然后,应该可以的啦!
快速回复
限100 字节
 
上一个 下一个