免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2194 | 回复: 0
打印 上一主题 下一主题

用QT控制LED [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-13 14:18 |只看该作者 |倒序浏览
平台版本:qtopia-free-2.2.0
目标平台:MY2410开发板
前提:开发板上的led驱动已经安装好了。
① 生成一个工程文件(.pro 文件)
一个应用通常对应一个工程文件,生成一个工程文件,并对它做一些简单的编辑,然后
使用一个专门的工具(例如tmake)处理这个工程文件,就可以生成一个Makefile 文件。
产生一个工程文件的其中一个方法是使用progen 命令(progen 程序可在tmake 的安装路径下找到)。在生成工程文件之前要设置好环境变量,为此编写一个脚本,内容如下:
export QTDIR=$PWD/qt2
export QPEDIR=$PWD/qtopia
export TMAKEDIR=$PWD/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++
export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH
保存的文件名为set-env.路径必须是qtopia-free-2.2.0的根目录下面(/MY2410/qt-x86/ qtopia-free-2.2.0)。
下面我们使用progen 产生一个名为hello 的工程文件
产生的hello.pro 工程文件并不完整,开发者还需手动往里添加工程所包含的头文件,源文
progen –t app.t –o led.pro

② 新建一个窗体
在qtopia-free-2.2.0 的安装路径的qt2/bin 目录下运行“./designer”命令,就启动了一
个Qt 图形编辑器。点击编辑器的“new”菜单,弹出了一个“new Form”对话框,在这个对
话框里我们选择“Widget”,然后点击“OK”按钮,这样我们就新建了一个窗体。接着我们
对这个窗体的属性进行设置,注意把窗体的“name”属性设为“LED”;窗体的各种尺寸设
为宽“320”,高“240”,目的是使窗体大小和MY2410开发板带的显示屏大小一致;窗体背景颜色
设置为蓝色。具体设置可参见下图:


设置完成后,将其保存为led.ui 文件,这个文件就是LED 窗体的界面存储文件。
必须注意led.ui led.pro保存在同一个目录下面(/MY2410/qt-x86/qt-source/led)。

③ 生成LED 窗体类的头文件和实现文件
下面我们根据上述的界面文件LED.ui 使用uic 工具产生出led 窗体类的头文件和
实现文件,具体方法是:
将/MY2410/qt-x86/ qtopia-free-2.2.0/qt2/bin下面的uic工具拷贝到/usr/local/bin 下面。
然后在/MY2410/qt-x86/qt-source/led目录现面执行如下命令:
uic –o hello.h hello.ui
uic –o hello.cpp –impl hello.h hello.ui
这样我们就得到了LED 窗体类的头文件led.h 和实现文件led.cpp。下面我们就可以根据我们要实现的具体功能,在led.cpp 文件里添加相应的代码。
④ 编写主函数main()
一个Qt/Embeded 应用程序应该包含一个主函数,主函数所在的文件名是main.cpp。主
函数是应用程序执行的入口点。以下是Hello,World 例子的主函数文件main.cpp 的实现代
码。
/****************************************************************************
** 以下是 main.cpp 源代码
****************************************************************************/
#include "led.h"
#include
#define QT_NO_WIZARD

int main(int argc, char** argv)
{  
   
   QApplication a(argc,argv);
   LED w;
   a.setMainWidget(&w);
   w.show();
   return a.exec();
}
⑤ 编辑工程文件led.pro 文件
到目前为止,我们为Hello,World 例子编写了一个头文件和两个源文件,这3 个文件应
该被包括在工程文件中, 因此我们需要编辑hello.pro 文件, 加入这
led.h,led.cpp,main.cpp 这三个文件名。具体定义如下
/****************************************************************************
** 以下是 led.pro 文件的内容
****************************************************************************/
TEMPLATE = app
CONFIG = qt warn_on release
HEADERS = led.h
SOURCES = led.cpp \
main.cpp
INTERFACES =
⑥ 生成Makefile 文件
在/MY2410/qt-x86/qt-source/led下面直接执行命令:
tmake –o Makefile led.pro
这样我们就会看到当前目录下新生成了一个名为Makefile 的文件。下一步,我们需要打开
这个文件,做一些小的修改。
(1)将LINK = arm-linux-gcc 这句话改为
LINK = arm-linux-g++
这样做是因为要是用arm-linux-g++进行链接
CC =  arm-linux-gcc
CXX =  arm-linux-g++

(2)将LIBS = $(SUBLIBS) -L$(QTDIR)/lib -lm –lqte 这句话改为
LIBS = $(SUBLIBS) -L/usr/local/arm/2.95.3/lib -L$(QPEDIR)/lib –lts –lqte  -lm –lstdc++
这是因为链接时要用到交叉编译工具toolchain 的库。
⑦ 编译链接整个工程
最后我们就可以在命令行下输入make 命令对整个工程进行编译链接了。
make 生成的二进制文件led就是可以在MY2410 上运行的可执行文件。
8 让程序运行在qtopia的桌面上:
还需要准备两个文件,一个是自己定义的32×32象素的led.png图标,另外一个是桌面文件led.desktop,其内容如下:
[Translation]
File=QtopiaApplications
Context=led
[Desktop Entry]
Comment[]=A led program
Exec=led
Icon=led
Type=Application
Name[]=led

因为我的qtopia是通过NFS 文件系统启动的,故有如下操作:
1 将可执行文件led拷贝到Fedora-10的/MY2410/nfs/Qtopia/bin下面
2将文件led.png拷贝到Fedora-10的/MY2410/nfs/Qtopia/pics下面
3将文件led.desktop拷贝到Fedora-10的
/MY2410/nfs/Qtopia/apps/Applications下面.
这样当qtopia启动以后就可以看到自己写的应用程序了。
如图:







本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/94352/showart_1899281.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP