找回密码
 立即注册
收起左侧

如何在Qapplication里得到Qscreen的base()参数?

0
回复
4998
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2015-6-26 10:38:48 显示全部楼层 |阅读模式
本帖最后由 sh200436 于 2015-6-26 11:00 编辑

各位,这几天看了下Qt里在嵌入式linux下应用的各种类,发现在qscreenlinuxfb_qws.cpp里有这么一句:

data = (unsigned char *)mmap(0, mapsize, PROT_READ | PROT_WRITE,
                                     MAP_SHARED, d_ptr->fd, 0);


想必这个data就是Qt的FrameBuffer指针了。而后在QSreen的类里找到了data的定义,同时在该类里出现一个函数:base(),它的返回值就是data指针。

继续追踪,在qapplication_qws.cppvoid QWSDisplay Data:init()函数里,有这么一句:

QScreen *s = qt_get_screen(qws_display_id, qws_display_spec.constData());

这个 s 里就包含Qt_FrameBuffer的指针, 即 FrameBuffer_address = s-->base();
上述是反推的过程。再正过来看,应该是这么一个过程:
Qapplication----->初始化显示参数——>申请FrameBuffer----->将Linux_fb映射到该FrameBuffer------>显示

现在的问题其实就转化成了这个问题:

如何在Qapplication里得到Qscreenbase()参数?
或者,在Qt里如何使用Qscreen而得到base()参数?

--估计这应该是个简单的的问题,但对于我这个初学者来说,有点难啊,希望大家帮帮忙啊,我C语言不好。。。。谢谢。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了