|
1Qter豆
在书中看到了这么一句
connect(action, SIGNAL(getText(QString)), this, SLOT(setText(QString)))
然后去查了下connect的定义
static QMetaObject::Connection
connect(const QObject *sender, const char *signal,const QObject *receiver, const char *member, Qt::ConnectionType = Qt::AutoConnection);
然后有了如下疑问
① getText(QString)这是什么用法?QString不是个类嘛,不是应该QString一个对象然后传进去么,还是说connect的函数就是要这格式?
② 看了下SIGNAL和SLOT的定义 #define SIGNAL(arg) #arg 这里是把(getText(QString))这整个转换成了字符串???
最近也是重新开始学起了C++,可能有些语法问题比较基础,望海涵
|
最佳答案
查看完整内容
1、getText(QString)这里是定义的信号,括号里边QString是这个信号发送的时候传递的参数类型,例如“emit getText(“发送信号”)”这句执行,那么相应的槽函数接收到的参数就是“发送信号”这个字符串;
2、SIGNAL和SLOT这两个宏定义是为了在宏定义的参数前边加上前缀字符串,“#”符号作用是字符串拼接,最终作用就是为了区分信号和槽。 ...
|