查看完整版本: [-- QT回调函数 --]

QTCN开发网 -> Qt基础编程 -> QT回调函数 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

tanyue.esec 2020-07-20 19:53

QT回调函数

有一个相机,需要回调函数来存储和显示图片。

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

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

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

dbzhang800 2020-07-20 21:19
你的相机SDK

注册回调时,能不能传入用户自定义数据

tanyue.esec 2020-07-21 09:18
gnibuoz:Lambda表达式需要指定捕获方式,如果你的回调函数是在成员函数里边定义的,那么直接在捕获列表里边写个&,然后界面就可以直接使用ui以及界面控件了 (2020-07-20 21:19) 

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

我感觉应该重新换个思路试试

tanyue.esec 2020-07-21 09:20
dbzhang800:你的相机SDK
注册回调时,能不能传入用户自定义数据 (2020-07-20 21:19) 

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

青空飞羽 2020-07-22 21:08
如果ui变量是私有的话,你在窗口类中定义一个公有方法用于返回ui对象指针,然后lambda表达式捕获窗口对象指针,调用成员方法获取ui对象指针,就可以操作ui了;或者直接将ui变量定义公有的,lambda表达式捕获了窗口对象指针后也可以直接操作ui对象指针了

tanyue.esec 2020-07-23 09:21
试了几天,找到了相机SDK中的另外一个方法,通过线程主动获取拍摄的图片。

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

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

spygg 2020-07-26 09:02
一般都是只读回调采用,  [=]()这种方式,能捕获所有的,不用管简直太爽.如果还要修改的话需要[将捕获的变量手动传入&,捕获参数1,....]()

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



查看完整版本: [-- QT回调函数 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled