Qt/Embedded Linux、内存、framebuffer

念茜 2011-12-01 04:45:17
大家好!目前项目中遇到2个问题,希望和大家讨论一下取取经:
1.在自定义Qt/Embedded Linux 时,通常可以通过指定一些特性来解决减少内存的占用问题。在嵌入式linux + Qt开发中,各位有什么和内存对战的高招和经验,希望不吝赐教,求分享。

2.qt/e类库完全采用C++ 封装, 但在底层舍弃了X-Window ,而是采用Frame Buffer作为底层图形接口。如今单一framebuffer已经满足不了我们的需求,现在我们用多层framebuffer来完成特定效果的显示。我希望学习一下,qt/e 怎么使用fb输出绘制的图形界面的,我希望在其中拦截,做些处理再输出,各位觉得可行不?
...全文
1073 47 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
zephirus_forever 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 46 楼 dingzx6 的回复:]

我现在也要用Qt来控制Framebuffer。
我看了QScreen的资料,但是还没找到“怎么初始化显示设备的分辨率”。
希望楼主和各位能指点一下。
[/Quote]
我的toolchain里,这是在内核代码里面修改的,而且只修改了屏幕高度,彻底修改可能还要修改些别的。
qt里面只是对/dev/fb设备的操作,按说是没法改屏幕分辨率的。
dingzx6 2011-12-29
  • 打赏
  • 举报
回复
我现在也要用Qt来控制Framebuffer。
我看了QScreen的资料,但是还没找到“怎么初始化显示设备的分辨率”。
希望楼主和各位能指点一下。
bestman 2011-12-28
  • 打赏
  • 举报
回复
FrameBuffer 是一种驱动程序接口,这种接口将显示设备抽象为帧缓冲区。用户可以将它看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作可以立即反应在屏幕上。该驱动程序的设备文件一般是 /dev/fb0、/dev/fb1 等等。如果使用fb输出绘制的图形界面,你可以对fb这些设备进行读写操作。本人只是刚接触Qt,学Linux系统的较多,把知道的都奉上。
bestman 2011-12-28
  • 打赏
  • 举报
回复
FrameBuffer 是一种驱动程序接口,这种接口将显示设备抽象为帧缓冲区。用户可以将它看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作可以立即反应在屏幕上。该驱动程序的设备文件一般是 /dev/fb0、/dev/fb1 等等。如果使用fb输出绘制的图形界面,你可以对fb这些设备进行读写操作。本人只是刚接触Qt,学Linux系统的较多,把知道的都奉上。
miss_siwei 2011-12-27
  • 打赏
  • 举报
回复
谁打开谁关闭,谁申请谁释放,说起来容易做起来难。对于qt这种类型的图形库,开发者对内存的控制很弱。
拦截fb还真有点难度。
念茜 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 40 楼 jay8830095 的回复:]

引用 37 楼 yiyaaixuexi 的回复:

引用 35 楼 yiyaaixuexi 的回复:

引用 31 楼 jay8830095 的回复:

我的意思是既然有客户端有服务端,知道他们之间的发送协议,应该可以拦截的。我对framebuff的理解就是应用程序把要显示的像素点保存到framebuff中,通过驱动显示到液晶屏上去。QT底层的东西会把你的图片啊,按钮啊之类的转换为正……
[/Quote]

因为这个方向,没有解决方案,所以就回避了,从别的方向补救。不是几句话可以说明白,很明确的说,我们也没有在帖子内容方向上,寻得好的答案。
changing_better 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 37 楼 yiyaaixuexi 的回复:]

引用 35 楼 yiyaaixuexi 的回复:

引用 31 楼 jay8830095 的回复:

我的意思是既然有客户端有服务端,知道他们之间的发送协议,应该可以拦截的。我对framebuff的理解就是应用程序把要显示的像素点保存到framebuff中,通过驱动显示到液晶屏上去。QT底层的东西会把你的图片啊,按钮啊之类的转换为正确的可以显示的数据像素点到framebuff去。应用程序……
[/Quote]
我觉得如果容易看的话,可以编译一个小的GUI了,我的理解到此为止,详细的没看过QT源代码,所以说不上。到是感兴趣你们最后的决定
念茜 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 38 楼 zhenwo123 的回复:]

本来感觉会点Qt来,可看完之后···········
[/Quote]

研究方向有很多,我们擅长的不一样,不要这么说~
念茜 2011-12-14
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 jay8830095 的回复:]

我的意思是既然有客户端有服务端,知道他们之间的发送协议,应该可以拦截的。我对framebuff的理解就是应用程序把要显示的像素点保存到framebuff中,通过驱动显示到液晶屏上去。QT底层的东西会把你的图片啊,按钮啊之类的转换为正确的可以显示的数据像素点到framebuff去。应用程序和QT底层之间通信应该就是C/S模式吧。
[/Quote]

问题就锁定在服务器端和客户端的协议上
挣扎中前行 2011-12-14
  • 打赏
  • 举报
回复
本来感觉会点Qt来,可看完之后···········
念茜 2011-12-14
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 yiyaaixuexi 的回复:]

引用 31 楼 jay8830095 的回复:

我的意思是既然有客户端有服务端,知道他们之间的发送协议,应该可以拦截的。我对framebuff的理解就是应用程序把要显示的像素点保存到framebuff中,通过驱动显示到液晶屏上去。QT底层的东西会把你的图片啊,按钮啊之类的转换为正确的可以显示的数据像素点到framebuff去。应用程序和QT底层之间通信应该就是C/S模式吧。


问题……
[/Quote]

细化一下 给些指导吧
noodle123 2011-12-13
  • 打赏
  • 举报
回复
内存管理上还保持者普通C++的风格,FrameBuffer还没有考虑到。
changing_better 2011-12-12
  • 打赏
  • 举报
回复
我的意思是既然有客户端有服务端,知道他们之间的发送协议,应该可以拦截的。我对framebuff的理解就是应用程序把要显示的像素点保存到framebuff中,通过驱动显示到液晶屏上去。QT底层的东西会把你的图片啊,按钮啊之类的转换为正确的可以显示的数据像素点到framebuff去。应用程序和QT底层之间通信应该就是C/S模式吧。
bluejoy345 2011-12-12
  • 打赏
  • 举报
回复
我不懂qt,我是来求楼主头像出处的
念茜 2011-12-11
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 whyboysa 的回复:]

刚才回了你那个 “坑爹的QCursor是色” 的帖子, 一看是10月份的问题了。。。。。
[/Quote]
谢谢了呵呵 那个已经是过去式了
whyboysa 2011-12-07
  • 打赏
  • 举报
回复
刚才回了你那个 “坑爹的QCursor是色” 的帖子, 一看是10月份的问题了。。。。。
念茜 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 whyboysa 的回复:]

QProcess p;
QString s1 = "your process" + " -display LinuxFb:0";
p.startDetached(s1);
这样可以创建一个分离的进程,让多个进程共同使用一个freambuffer。

如果要拦截的话,不知道你拦截的是不是事件啊, 可以看看事件过滤那块。

顺便在帮顶下,希望妞妞能得到好的解决方法。
[/Quote]

谢谢,我仔细想想能不能实现我的需求~
whyboysa 2011-12-07
  • 打赏
  • 举报
回复
QProcess p;
QString s1 = "your process" + " -display LinuxFb:0";
p.startDetached(s1);
这样可以创建一个分离的进程,让多个进程共同使用一个freambuffer。

如果要拦截的话,不知道你拦截的是不是事件啊, 可以看看事件过滤那块。

顺便在帮顶下,希望妞妞能得到好的解决方法。
noodle123 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 islife 的回复:]

没有搞过QT,但是看到美女也问这个,准备今天晚上就开始学QT
[/Quote]还没有彻底使用Qt的飘过。
myseemylife 2011-12-06
  • 打赏
  • 举报
回复
2个FB。。。。
加载更多回复(23)

16,817

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧