Qt 采用emit发射信号,编译器报出信号无法解析的外部符号?

Guanglew 2012-11-19 09:09:51
自己编写了一个TCP类 继承了QObject 用于实现tcp连接的server端, 当有一个client的连接请求到来时会在UI 类中提升信息。通过信号槽机制实现。
现在的问题是,在tcp的类中emit时会报出信号函数是无法解析的外部符号,在UI 类中已经实现了connect,信号与槽都是一个类型的参数,信号只声明没定义,槽已定义好。。。找了半天仍没有找到原因。大家帮帮我吧,,怎么整啊 ???
    emit sndClientInfo(tcpSkt->peerAddress().toString());
//信号发射

connect(&server , SIGNAL(sndClientInfo(const QString &)) , this , SLOT(updateStatusBar(const QString &)));//UI类中的connect函数。
...全文
1526 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
smartDMer 2014-03-20
  • 打赏
  • 举报
回复
有一种情况是:.h头文件没有生成相应的moc文件,导致signals/slot关联找不到。.h文件属性,自定义生成moc文件,输出不能为空
rophie 2013-09-15
  • 打赏
  • 举报
回复
在一个文件中定义了两个类,就会出现这样的问题,我也遇到了
tjwangzhen 2012-12-28
  • 打赏
  • 举报
回复
执行下 qmake 。 我也遇到这个错误
T_ccc 2012-11-21
  • 打赏
  • 举报
回复
你的H文件中有定义的信号或槽没有使用吧
乔巴好萌 2012-11-21
  • 打赏
  • 举报
回复
你里面绑定的参数都是 const QString & 你传的是一个QString & 你可以先 const QString & addr = tcpSkt->peerAddress().toString(); 再emit试试
菜园小火车 2012-11-21
  • 打赏
  • 举报
回复
emit sndClientInfo(tcpSkt->peerAddress().toString()); 不会是认为这个就是声明把?
tt2com 2012-11-19
  • 打赏
  • 举报
回复
Q_OBJECT
  • 打赏
  • 举报
回复
QObject::connect
moxiaofeng77 2012-11-19
  • 打赏
  • 举报
回复
你应该是server类里面没有定义sndClientInfo信号
Jonix 2012-11-19
  • 打赏
  • 举报
回复
就是声明 那声明过应该可以的呀。
Guanglew 2012-11-19
  • 打赏
  • 举报
回复
引用 1 楼 Jonix 的回复:
信号 sndClientInfo 定义了吗?
没有啊 我看网上说信号不用定义吧 只声明就行啊。。
Jonix 2012-11-19
  • 打赏
  • 举报
回复
信号 sndClientInfo 定义了吗?

16,222

社区成员

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

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