紧凑高效的视窗系统 (QWS)
Qt
构建在标准的API上,应用于嵌入式Linux设备,并带有自己的紧凑视窗系统。基于Qt的应用程序直接写入Linux帧缓冲,解除了您对 X11 视窗系统的需求。
- 减少内存消耗,占位更小 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
- 可利用硬件加速图形硬件加速图形
- 可编译移除不常使用的组件与功能
虚拟帧缓冲 (QVFb)
Qt for Embedded Linux
提供一个虚拟帧缓冲器,可以采用点对点逐像素匹配物理设备显示。
- 真实的测试构架
- 在桌面系统上嵌入式测试
模拟物理设备显示的宽度、高度与色深
![](https://i-blog.csdnimg.cn/blog_migrate/2f399ea0a100dc3f8286cff018959ca0.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/5c76c4c50a0de93a7d8a0c0626d1ac9b.jpeg)
qdevelop
是一个跨平台集成开发环境,完全致力于
qt4
的开发
。它由一个
Qt
项目管理器,源代码编辑器,和通过调用
make
、
gdb
命令实现的自动构建工具组成。
qdevelop
的目的是易于使用,不会尝试与更完整的开发工具竞争,如
kdevelop
。它的目标是简单,强大,以及实现不同平台上接口的统一
[root@localhost root]# cd /mnt/hgfs/linux/
[root@localhost linux]# tar -zxvf qdevelop-v0.28.tar.gz -C /usr/local/
//
解压到指定目录
![](https://i-blog.csdnimg.cn/blog_migrate/b19c2e52e7eec9c06657fdfdaba24862.jpeg)
[root@localhost linux]# cd /usr/local/qdevelop-v0.28/
[root@localhost qdevelop-v0.28]# source /root/qt-x11.sh
[root@localhost qdevelop-v0.28]# echo $PATH
//
显示所有
PATH
路径
/usr/local/Trolltech/Qt-4.5.2//bin:/usr/local/arm/3.4.1/bin:/usr/local/arm/3.4.1/bin:/usr/local/arm/3.4.1/bin:/usr/local/arm/3.4.1/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
[root@localhost qdevelop-v0.28]# ls
[root@localhost qdevelop-v0.28]# qmake QDevelop.pro
//
从错误提示中,在执行构建工程之前,先运行
lrelease QDevelop.pro
Project ERROR: Please run "lrelease QDevelop.pro" before building the project
[root@localhost qdevelop-v0.28]# lrelease QDevelop.pro
//
执行
lrelease QDevelop.pro
![](https://i-blog.csdnimg.cn/blog_migrate/8d66a409cb5b758ef10d72ef38e0d326.jpeg)
[root@localhost qdevelop-v0.28]# qmake QDevelop.pro
//
执行检测头文件及库文件,然后生成
Makefile
文件。
[root@localhost qdevelop-v0.28]# make
//
编译生成执目标文件及执行文件
![](https://i-blog.csdnimg.cn/blog_migrate/05ffb2e15b5ffed2a2910f07bae49e0a.jpeg)
[root@localhost qdevelop-v0.28]# vi +52 src/InitCompletion.cpp
//
打开并编辑
InitCompletion.cpp,
跳到文件的
52
行
[root@localhost qdevelop-v0.28]# make
//
编译源代码
![](https://i-blog.csdnimg.cn/blog_migrate/f7823424a7c7bbe95e7c2e3cf48bd46e.jpeg)
src/InitCompletion.cpp: In destructor `virtual
InitCompletion::~InitCompletion()':
src/InitCompletion.cpp:52: parse error before `+' token
src/InitCompletion.cpp:53: confused by earlier errors, bailing out
make: *** [build/o/unix/InitCompletion.o] Error 1
//
初始化程序写法,编译器不识别
将
QFile( QDir::tempPath()+"/"+file ).remove();
修改为:
QString str = QDir::tempPath()+"/";
QFile(str + file).remove();
![](https://i-blog.csdnimg.cn/blog_migrate/77d7bbc626c078a925588ff6a9affa15.jpeg)
[root@localhost qdevelop-v0.28]# make install
//
安装
Qdevelop
install -m 755 -p "bin/qdevelop" "/usr/bin/qdevelop"
strip "/usr/bin/qdevelop"
[root@localhost qdevelop-v0.28]# qdevelop
//
执行测试
qdevelop
效果
![](https://i-blog.csdnimg.cn/blog_migrate/65fb9b7b2e9d10d9e07fa062692107a2.jpeg)
写一个显示
Button
窗口部件
![](https://i-blog.csdnimg.cn/blog_migrate/9b4a5b83b6369f74e20bcd1225633023.jpeg)
环境的搭建及测试!!
vi qt-x11.sh
#!/bin/sh
export QTDIR=/usr/local/Trolltech/Qt-4.5.2/
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
![](https://i-blog.csdnimg.cn/blog_migrate/2fb108e9d409a86cdfca9e5aaedddaee.jpeg)
vi qt-x86.sh
#!/bin/sh
export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/
export PATH=$QTEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTEDIR/lib:$LD_LIBRARY_PATH
![](https://i-blog.csdnimg.cn/blog_migrate/bdff5ac0ed593505af85f3d641d4d0c1.jpeg)
[root@localhost root]# mkdir quit
//
创建一个
quit
目录
[root@localhost root]# cd quit/
//
切换到
quit
目录
[root@localhost quit]# vi main.cpp
//
创建编辑
main.cppC++
源文件
![](https://i-blog.csdnimg.cn/blog_migrate/1d847bf5420fbc513f5832a43cd7d2a8.jpeg)
#include <QApplication>
#include <QPushButton>
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
QPushButton *button = new QPushButton("Quit");
QObject::connect(button,SIGNAL(clicked()),&app,SLOT(quit()));
button->show();
return app.exec();
}
//
编写以上的程序,一个按钮小程序测试
![](https://i-blog.csdnimg.cn/blog_migrate/79ee961bf95de76a364b0fc30f1c98d6.jpeg)
[root@localhost quit]# cd ../
//
切换到
quit
上级目录
[root@localhost root]# ls
//
显示该目录下的文件
[root@localhost root]# source qt-x86.sh
//
加载
qt-x86.sh
文件,设置临时的编译文件所需工具的路径及库连接
[root@localhost root]# echo $PATH
//
显示设置的编译器
qmake
的路径设置
[root@localhost root]# cd quit/
//
切换到
quit
目录
[root@localhost quit]# qvfb -width 320 -height 240 &
//
[root@localhost quit]# ./quit -qws
![](https://i-blog.csdnimg.cn/blog_migrate/0d22bbab0342bee2ef06cb17d7989c28.jpeg)
在虚拟缓冲帧显示效果:
![](https://i-blog.csdnimg.cn/blog_migrate/b12bbe7f7ea063d416c651045e302924.jpeg)
转载于:https://blog.51cto.com/chenboqiang/339655