社区
Qt
帖子详情
QT的emit是啥语法?
shootingstars
2012-06-05 02:28:54
比如下述语句:
emit mySignal();
这个emit是个啥?宏吗?它的定义是什么?
或者它必须经过moc编译?最后变为C++是什么样子的语句?
...全文
2631
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
静态函数发送信号
需要注意的是,由于我们在静态函数中发送信号,所以必须使用`QObject::connect`的C++11
语法
,这样可以连接到静态信号和静态槽。 然而,由于静态函数无法直接访问非静态成员,如果想要在静态信号发射时传递数据,...
基于
QT
的忙加载动画效果
通过使用QML,开发者可以以JSON风格的
语法
定义UI组件,并通过JavaScript来控制其行为。QML支持数据绑定、动态对象创建和事件处理,使得UI设计和逻辑编写能够紧密结合。 **QML Busy Indicator** QML中的`...
Qt
不同类进行信号与槽建立,并传递参数
此外,
Qt
5引入了新的C++11风格的信号槽
语法
,可以使用`&`操作符直接引用成员函数,使得代码更加简洁: ```cpp connect(classA, &ClassA::buttonClicked, this, &ClassB::handleButtonClicked); ``` 总之,
Qt
的信号...
Py
QT
5 e
mit
和 connect的用法详解
在Py
QT
5中,`e
mit
`和`connect`是用于信号和槽机制的关键函数,这是
Qt
库中的核心特性,使得对象间的通信变得简单且高效。Py
QT
5与Py
QT
4相比,有一些重要的改动,尤其是对于这两个函数的使用。本文将详细讲解Py
QT
5中`...
Qt
获取python列表List.zip
与此同时,Python作为一门高级编程语言,以其简洁的
语法
和强大的库支持深受开发者喜爱。当我们需要在
Qt
应用程序中与Python交互时,可能会涉及到在
Qt
中获取Python的数据结构,比如列表。本文将深入探讨如何在
Qt
环境中...
Qt
21,494
社区成员
26,692
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章