社区
Qt
帖子详情
QT的emit是啥语法?
shootingstars
2012-06-05 02:28:54
比如下述语句:
emit mySignal();
这个emit是个啥?宏吗?它的定义是什么?
或者它必须经过moc编译?最后变为C++是什么样子的语句?
...全文
2399
18
打赏
收藏
QT的emit是啥语法?
比如下述语句: emit mySignal(); 这个emit是个啥?宏吗?它的定义是什么? 或者它必须经过moc编译?最后变为C++是什么样子的语句?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Emma_8
2014-07-15
打赏
举报
回复
触发后面的信号?
zhu_xz
2012-06-06
打赏
举报
回复
1
首先你的类声明里面得定义一个信号:
signals:
void mySignal();
当moc执行的时候,就会自动生成一个签名为void mySignal()的函数,并且添加相应代码以便进行信号和槽的连接。
而emit关键字其实仅仅起着修饰的作用,所以以下两行是一样的:
emit mySignal();
mySignal();
本质上,这个由moc生成的mySignal()函数会被调用,然后Qt内部会调用预期连接的所有slot。
wshn13
2012-06-06
打赏
举报
回复
emit 只是在rcc处理带Q_OBJECT的文件时候起标识作用 在我们emit some_signal() 时候 就相当于直接调some_signal()函数 在我们使用时候最好还是带emit吧 一目了然
wshn13
2012-06-06
打赏
举报
回复
#define emit
tst1255
2012-06-06
打赏
举报
回复
呵呵,我是来接分的。
谢谢楼主。
AAA20090987
2012-06-06
打赏
举报
回复
emit是一个宏定义,是给人看的,C++的编辑器直接忽略它
meng_meng21
2012-06-06
打赏
举报
回复
不明白什么
jdwx
2012-06-05
打赏
举报
回复
Qt没有编译器,不过听说要自己做编译器了,不知道是不是真的。
emit 就是发射信号的意思,一个宏。
zhengjiankang
2012-06-05
打赏
举报
回复
qt 有qt的编译器。moc。不就是么。
你没有qt的编译器能编译qt project么
shootingstars
2012-06-05
打赏
举报
回复
to zhengjiankang:
问题是QT是C++写的,如果C++编译器不支持,不是什么语法都可以的。
zhengjiankang
2012-06-05
打赏
举报
回复
没有什么是C++编译的。。
都是编译器编译的。
只要编译器支持。
你什么语法都可以。
shootingstars
2012-06-05
打赏
举报
回复
这个代码最后是由C++编译的吗?如果是,最后不论是宏还是其他的方式,它扩展出来是什么样子?(这个必须符合C++语法)
看山不是山看水不是水
2012-06-05
打赏
举报
回复
这不是c++的语法 是Qt框架库里扩展的机制,就当是宏理解好了 emit 就是“发射”;使用的时候必须Q_OBJECT宏添加进来,或者使用QObject的静态函数
yingwenzifu
2012-06-05
打赏
举报
回复
emit 可以当作宏定义来理解,可以看看QObject定义的activate_signal的成员函数~~
shootingstars
2012-06-05
打赏
举报
回复
嗯。那emit是个什么东西呢?这个东西明显不合符c/c++的语法啊。
shen_wei
2012-06-05
打赏
举报
回复
类似。。SendMessage PostMessage
shootingstars
2012-06-05
打赏
举报
回复
我不是问如何连接信号和槽,而是希望知道emit到底是个啥。。。
shen_wei
2012-06-05
打赏
举报
回复
在你的程序中应该能找到类似这样的语句:
connect(obj,SIGNAL(changeCurrentShape(*)),anotherobj,SLOG(FUN(*)))
当执行到 emit changeCurrentShape(Shape::Triangle) 时,QT的信号槽机制,会自动触发FUN()函数
【
Qt
】e
mit
关于e
mit
的疑问 比如下述语句: e
mit
mySignal(); 这个e
mit
是个啥?宏吗?它的定义是什么? 或者它必须经过moc编译?最后变为C++是什么样子的语句? 解答 1、表面作用:发送信号,触发槽函数 这个是消息的传递。。触发消息用的!!! 在你的程序中应该能找到类似这样的语句: connect(obj,SIGNAL(changeCurrentShape(*)),anotherobj...
Qt
之e
mit
、signals、slot的使用
参考:https://www.ibm.com/developerworks/cn/linux/guitoolkit/
qt
/signal-slot/index.html 信号和槽机制是
QT
的核心机制,要精通
QT
编程就必须对信号和槽有所了解。信号和槽是一种高级接口,应用于对象之间的通信,它是
QT
的核心特性,也是
QT
区别于其它工具包的重要地方。信号和槽是
QT
自行定义的一种通信机制,...
【
QT
学习笔记】
QT
教程:
QT
中e
mit
用法
在
Qt
编程中,`e
mit
` 是用于发送信号(Signals)的关键字。信号是
Qt
框架中的一种机制,用于在对象之间进行通信,特别是在事件驱动的编程中非常有用。通过使用信号和槽(Slots)机制,可以实现对象之间的解耦和交互。
使用e
mit
发射信号
在
Qt
中,e
mit
是一个关键字,用于在信号槽机制中发射信号。信号槽机制是
Qt
的一个重要特性,用于在对象之间进行通信。当一个对象的状态发生变化时,它可以发射一个信号,其他对象可以连接这个信号并在信号被发射时执行一些操作。此外,在发射信号时,信号的名称前需要加上e
mit
关键字。其中,signalName是。需要注意的是,如果一个信号在。,parameters是。1、发射一个无参数信号。
Qt
之 e
mit
、signals、slot的使用
信号和槽是一种高级接口,应用于对象之间的通信,它是
QT
的核心特性,也是
QT
区别于其它工具包的重要地方。信号和槽是
QT
自行定义的一种通信机制,它独立于标准的 C/C++ 语言。 因此要正确的处理信号和槽,必须借助一个称为 moc(Meta Object Compiler)的
QT
工具,该工具是一个 C++ 预处理程序,它为高层次的事件处理自动生成所需要的附加代码。
Qt
16,216
社区成员
26,595
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章