QT connect No such slot

celerylxq 2016-03-01 04:49:44
各位大神帮我看看哪错了?
MyConnect *MyConn;
MyConnect 类中定义:
signals:
void signRcvData(const QByteArray &data,char TxOrRx,int RtuId);

frmDisplay *pDisplay = new frmDisplay;
class frmDisplay : public myExtedit
{
public:
explicit frmDisplay(/*QWidget *parent = 0*/);
~frmDisplay();
public slots:
virtual void displayRxTxData(QByteArray requestData,char TxOrRx = 0,int RtuId = 1);
};
class myExtedit : public QTextEdit
{
public:
myExtedit();
};
connect(MyConn,SIGNAL(signRcvData(QByteArray,char,int)),pDisplay,SLOT(displayRxTxData(QByteArray,char,int)));
运行时报QObject::connect: No such slot QTextEdit::displayRxTxData(QByteArray,char,int)

哪位大神给指点下,感激不尽

...全文
420 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
RNG_ZS 2018-03-24
  • 打赏
  • 举报
回复
问一下这个connect(MyConn,SIGNAL(signRcvData(QByteArray,char,int)),pDisplay,SLOT(displayRxTxData(QByteArray,char,int)));触发信号的来源能和我讲一下吗
celerylxq 2016-03-02
  • 打赏
  • 举报
回复
搞定,哈哈, “Makefile背后的原因是qmake,因为Qt的编译系统是通过qmake将.pro文件转换成Makefile文件。当qmake扫描.h代码时发现有Q_OBJECT这样字眼的代码时,会将一个用moc生成moc_xxx.cpp代码的依赖关系写到Makefile里。如果扫描时没有找到Q_OBJECT就不会生成额外的moc_xxx.cpp这样的文件。 出现最初一幕的原因是在执行qmake的时候.h代码里并没有O_OBJECT这样的代码。而执行make的时候.h里已经有Q_OBJECT了,解决的方法就是重新执行qmake,然后执行make.” 具体做法是,手动删除debug中所有文件,重编译,成功。
celerylxq 2016-03-02
  • 打赏
  • 举报
回复
引用 1 楼 void_main_void 的回复:
少了 Q_OBJECT????
引用 2 楼 zbw1185 的回复:
试试2楼的.
感谢楼上的回复,我加了 Q_OBJECT,可是编译报错error: undefined reference to `myExtedit::staticMetaObject' 是清理项目之后的完全编译,这是为什么?
画茧自缚 2016-03-02
  • 打赏
  • 举报
回复
试试2楼的.
void_main_void 2016-03-01
  • 打赏
  • 举报
回复
少了 Q_OBJECT????

16,211

社区成员

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

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