• 2243阅读
  • 8回复

[提问]QT回调函数 [复制链接]

上一主题 下一主题
离线tanyue.esec
 

只看楼主 倒序阅读 楼主  发表于: 2020-07-20
有一个相机,需要回调函数来存储显示图片

我现在用lambda表达式实现的回调函数,但是回调函数中获取不到窗口的对象了,怎么才能获取ui对象,乃至于获取对象上的QLabel对象呢。

新手,好多概念还不是台理解,C++也不是很熟悉,此前一直在搞java后台和前端的开发。。。
离线gnibuoz

只看该作者 1楼 发表于: 2020-07-20
Lambda表达式需要指定捕获方式,如果你的回调函数是在成员函数里边定义的,那么直接在捕获列表里边写个&,然后界面就可以直接使用ui以及界面控件了
1条评分金钱+1
tanyue.esec 金钱 +1 - 2020-07-21
我就是我,颜色不一样的烟火...
离线dbzhang800

只看该作者 2楼 发表于: 2020-07-20
你的相机SDK

注册回调时,能不能传入用户自定义数据
1条评分金钱+1
tanyue.esec 金钱 +1 - 2020-07-21
离线tanyue.esec

只看该作者 3楼 发表于: 2020-07-21
回 gnibuoz 的帖子
gnibuoz:Lambda表达式需要指定捕获方式,如果你的回调函数是在成员函数里边定义的,那么直接在捕获列表里边写个&,然后界面就可以直接使用ui以及界面控件了 (2020-07-20 21:19) 

我试了下不行,注册的回调函数限制住了。

我感觉应该重新换个思路试试
离线tanyue.esec

只看该作者 4楼 发表于: 2020-07-21
回 dbzhang800 的帖子
dbzhang800:你的相机SDK
注册回调时,能不能传入用户自定义数据 (2020-07-20 21:19) 

有一个void*的参数,貌似是个函数指针呢,是不是可以用来做点文章
离线青空飞羽

只看该作者 5楼 发表于: 2020-07-22
如果ui变量是私有的话,你在窗口类中定义一个公有方法用于返回ui对象指针,然后lambda表达式捕获窗口对象指针,调用成员方法获取ui对象指针,就可以操作ui了;或者直接将ui变量定义公有的,lambda表达式捕获了窗口对象指针后也可以直接操作ui对象指针了
离线tanyue.esec

只看该作者 6楼 发表于: 2020-07-23
试了几天,找到了相机SDK中的另外一个方法,通过线程主动获取拍摄的图片。

于是加了一个定时器,每100毫秒获取一张图片,然后在QLabel上显示,最终形成了一个流畅的视频。

最深的感触就是,当初因为指针弃坑C++,投奔Java,没想到这么多年了,又回来了
离线spygg

只看该作者 7楼 发表于: 2020-07-26
一般都是只读回调采用,  [=]()这种方式,能捕获所有的,不用管简直太爽.如果还要修改的话需要[将捕获的变量手动传入&,捕获参数1,....]()
签名就是这么浪
离线gnibuoz

只看该作者 8楼 发表于: 2020-08-11
回 tanyue.esec 的帖子
tanyue.esec:试了几天,找到了相机SDK中的另外一个方法,通过线程主动获取拍摄的图片。
于是加了一个定时器,每100毫秒获取一张图片,然后在QLabel上显示,最终形成了一个流畅的视频。
最深的感触就是,当初因为指针弃坑C++,投奔Java,没想到这么多年了,又回来了 (2020-07-23 09:21) 

我就是我,颜色不一样的烟火...
快速回复
限100 字节
 
上一个 下一个