距离上次发博文已经有一段不短的时间, 很不好意思, 一直忙于Creator翻译、Qt书籍翻译, 对博文撰写有些懈怠,现在其他事情都暂告段落, 笔者决心恢复写博文的热情, 争取多记录一些Qt的经验。
今天翻看以前写的blog, 发现一篇关于QtE屏幕动态旋转的文章(俺写的,汗),结合今天碰巧看到的代码一对照, 发现原来QtE是可以支持屏幕动态旋转的, 只是上次没有发现而已!原来自己写了一篇很傻的blog还不自知… 这里只好补上一篇简单的blog以做修正。
在 QtE程序动态旋转的不完全实现 一文中笔者讲到QtE自带了支持旋转的gfxdriver插件“transformed”,通过编译src/plugins/gfxdrivers/transformed目录可以得到这个插件。进一步在启动程序时设置环境变量可以指定QtE载入这个插件:
export QWS_DISPLAY=transformed:::rot90:0 #rot90表示顺时针旋转90度
在QtE内部会使用QTransformedScreen这个类替代普通的QScreen进而实现屏幕旋转。
而QWSDisplay类提供了一个静态方法setTransformation, 函数原型:
void QWSDisplay::setTransformation ( int transformation, int screenNo = -1 ) [static]
这个函数就是笔者先前没有发现的宝藏! 第一个参数给0、1、2、3代表旋转0、90、180、270度。这个函数在Qt文档中隐藏得实在太深了, 如果你不是非常有目的性地去仔细查找,是不太可能留意到这个函数的。(而笔者是先看到代码才找到这个函数的文档, 其实很负责任的讲,俺觉得即使Qt文档中确实出现了这个函数的原型, 也不能说这个函数是个公开的API, 因为文档实在是太隐蔽了。。。。让人非常汗)
有几点需要注意的地方:
- 该函数只能在server程序中调用, 在client中调用有时会没有作用(笔者的测试是有时管用有时不管用,建议只在server里调用)
- 该函数的作用域是整个QtE环境, 包括server的widgets和client的widgets
- 启动server时必须加载transformed驱动, 不然调用setTransformation函数是没用的。
综上, 如果你想实现的是某个widget的旋转, 可能该方法就不适用了。笔者的建议是改用QGraphicsView或QML来实现。
来源:http://blog.sina.com.cn/s/blog_640531380100vkl2.html
分享到:
相关推荐
如果需要在Windows CE上运行,可能还涉及到了QT for Embedded Linux或QT for Windows CE的特定配置和编译选项。 至于项目中的"yyy"和"win"这两个文件,它们可能是源代码文件、资源文件或者编译后的二进制文件。"yyy...
通过QtEmbedded或Qt for Embedded Linux,开发者可以在资源有限的嵌入式系统上构建功能丰富的用户界面。这需要对内存管理、性能优化以及平台特定的移植技术有深入理解。 文件列表中的"QT4图形设计与嵌入式开发源...
可能需要使用Qt的轻量级版本,如Qt for Embedded Linux或Qt for Device Creation,这些版本针对低功耗和有限内存的设备进行了优化。 7. **事件处理** 在实现定时播放、缩放和旋转功能时,还需要考虑用户交互。比如...
10. **屏幕截图**:`screenshot_(5)_KILn4YJNcz.png`和`screenshot_(8)_NT3Gb0kPC3.png`展示了应用的用户界面,包括电机转速的可视化表示和其他交互元素。 **项目开发流程** 1. 设计用户界面:使用QML创建图形界面...
开发者可能使用嵌入式GUI库,如Qt for Embedded、MicroPython的uGUI或者TinyGUI等,来创建这些功能。GUI的设计需要考虑到资源限制,确保在低功耗和小屏幕设备上也能提供良好的用户体验。 电子相册还可能包含其他...
OpenGL ES(OpenGL for Embedded Systems)是OpenGL的一个轻量级版本,专为嵌入式设备如手机和平板设计,用于处理2D和3D图形。在这个“安卓翻页效果相关-android用opengl实现电子书翻书效果代码”中,开发者可能已经...
2. **图形库**:为了显示和操作图像,我们需要一个图形库,如LittlevGL、Qt Embedded或uGUI。这些库提供了基本的图形绘制函数,如矩形、圆形、文本等,以及事件处理机制,用于响应用户的触摸操作。 3. **事件处理**...
可以使用GUI库如Qt for Embedded、MicroPython的uasyncio模块等,来简化界面开发工作,实现按钮、文本框、图表等常见控件。 总的来说,液晶显示在嵌入式系统中的应用涉及硬件选型、接口设计、软件编程以及用户界面...