x86-qtopia应用程序编写及到arm板的移植

x86-qtopia应用程序编写:

平台:友善之臂Mini2440 + 3.5“LCD

1.进入x86-qtopia,创建文件夹hello_test;
2.按照x86-qtopia/qtopia-2.2.0-FriendlyARM/setQpeEnv设置环境变量;
3.使用qtopia-2.2.0-FriendlyARM/tmake/bin/progen 创建一个名为hello.pro的工程文件(其实这个文件也可以用gedit创建,反正刚开始是空的);
#./progen -t app -o hello.pro
将该hello.pro移动到hello_test文件夹下;
4.进入qtopia-2.2.0-FriendlyARM/qt2/bin/,打开QT Designer
#./designer
进入QT Designer开发环境。
选择New一>Dialog
这时侯,您的QT Designer中就会出现一个Froml来.现在我们click一下上面的tools中的那个pushbutton
(标有OK的图标)并且用mouse选择到一定的大小.在这个pushbutton上面用您的mouse double click一下.
我们就可以改变pushbutton的label了.这里我们把pushbutton 1这几个宇,换成Exit,然梭直接按Enter
或者用mouse选择OK也可以。现在我们看到,那个button中的标签已将变成Exit了.
我们这时一侯还需要给这个Exit Button一个signal(信号),这样当您在Exit这个Button上click的时侯.QT才知道如何去处理这个信号.
我们按一下F3 (Cconnect singnal slot)
然后,在那个Exit Button上面Click一下.
这时一侯我们就看到了Edit Connection的Dialog了.在Signal中选择clicked,在slot中,先选择toggle()就好了.这时侯选择OK.我们就 算是完成了.如果想看看这个小程序长什么样子.
可以用CTRL+T来看Preview.
5.用File一>Save把这个文件存为hello.ui放在x86-qtopia/hello_test的目录下.
6.使用uic工具生成hello.h及hello.cpp;
#../qtopia-2.2.0-FriendlyARM/qt2/bin/uic -o hello.h hello.ui 
#../qtopia-2.2.0-FriendlyARM/qt2/bin/uic -o hello.cpp -impl hello.h hello.ui
7.分别在hello.h; hello.cpp里面添加需要的代码,本例子不用添加代码
8.编写主函数main.cpp内容如下:
#include 
#include "qwidget.h"
#include "hello.h"

int main(int argcchar **argv)
{
QApplication app(argcargv);

Form1 *hello=new Form1();
hello->show();
app.setMainWidget(hello);
return(app.exec());
}
9.编辑工程文件hello. pro文件:
/*************************************************************************
**以下是hello. pro文件的内容
*************************************************************************/
TEMPLATE = app
CONFIG = qt warn_on
HEADERS =hello.h
SOURCES =hello.cpp main.cpp
INTERFACES= 
【注意】:一定要将INTERFACES= hello.uic 修改为:INTERFACES=
否则:报错:重定义
10.生成Makefile文件:
(1)首先查看环境变量
#echo $TMAKEPATH 看看结尾是不是.../qws/linux-generic-g++字符串;
(2)修改tmake/lib/qws/linux-generic-g++/tmake.conf文件,将TMAKE_link = gcc 和TMAKE_link_SHLIB = gcc
分别修改成TMAKE_link = g++和TMAKE_link_SHLIB = g++
(3)生成Makefile文件
#tmake -o Makefile hello.pro
(4)修改Makefile文件:
LIBS = $(SUBLIBS) -L$(QTDIR)/lib -lqte 修改为:
LIBS = $(SUBLIBS) -L$(QPEDIR)/lib -lqte -lm -lqtopia
11.编译连接整个工程:
#make
生成可执行文件hello
12.将可执行文件拷贝到x86-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/image/opt/Qtopia/bin目录下;
13.运行./run_hello 就可以在帧缓冲器中看到你自己编辑的界面了,哈哈!

 


==============================================================================================
将应用程序发布到开发板上
==============================================================================================
1.将在像x86模拟器中调试好的文件夹拷贝到arm-qtopia下;
2.删除文件夹下的所有目标文件
#rm -rf *.o
3.按照arm-qtopia/qtopia-2.2.0-FriendlyARM/setQpeEnv设置环境变量;
4.修改tmake配置文件
#gedit ../qtopia-2.2.0-FriendlyARM/tmake/lib/qws/linux-arm-g++/tmake.conf
将其中“TMAKE_link= arm-linux-gcc”“TMAKE_link_SHLIB= arm-linux-gcc”
修改为:“TMAKE_link= arm-linux-g++”“TMAKE_link_SHLIB= arm-linux-g++”
5. 使用tmake 工具来生成我们需要的makefile然后make
../qtopia-2.2.0-FriendlyARM/tmake/bin/tmake -o Makefile hello.pro
6.修改Makefile文件:
LIBS = $(SUBLIBS) -L$(QPEDIR)/lib -lm -lqte
7.make 生成可执行文件hello;
8.通过串口将hello下载到目标板;
9.修改hello目标文件权限;
10.在目标板上运行 ./hello -qws
就可以看见界面了,呵呵。


在QT编程中,一般会在subclass中实现slots,这样修改界面时就不用重新修改代码,只是生成相对应的界面代码就可以了,用uic生成subclass的示例代码如下:
uic -o myform.h myform.ui # generate header file
uic -o myform.cpp -impl myform.h myform.ui # generate implementation file
uic -o myformimpl.h -subdecl MyFormImpl myform.h myform.ui # generate subclass header file
uic -o myformimpl.cpp -subimpl MyFormImpl myformimpl.h myform.ui # generate subclass implementation file
edit myformimpl.h # edit subclass header file
edit myformimpl.cpp # edit subclass implementation file

 

moc -o moc_myform.cpp myform.h # generate moc code for base class
moc -o moc_myformimpl.cpp myformimpl.h # generate moc code for subclass
c++ -c myform.cpp -I$(QTDIR)/include # compile base class use similar command on Windows
c++ -c moc_myform.cpp -I$(QTDIR)/include # compile base class moc code use similar command on Windows
c++ -c myformimpl.cpp -I$(QTDIR)/include # compile subclass use similar command on Windows
c++ -c moc_myformimpl.cpp -I$(QTDIR)/include # compile subclass moc code use similar command on Windows
c++ -o myform myform.o moc_myform.o myformimpl.o moc_myformimpl.o -L$(QTDIR)/lib -lqt # link everything together use similar command on Windows

(9)运行应用程序hello
//在qt_x86/下面运行:
#qvfb&            
#./hello –qws //注:另一终端已运行qvfb
      (10)将hello文件拷贝到qt_x86/qtopia/bin目录下面


   3.【制作图标】

      制作一个16 X 16大小的PNG格式的图标文件,将该文件存放在$QPEDIR/pics目录下,命名为:hello_wpb.png

   4. 制作桌面启动器(.desktop)文件
        在$QPEDIR/apps/Applications目录下,建立一个文本文件,在文件中添加以下的内容,
    这些内容指明了应用的名称,图标名等信息,然后将文件更名为xxxx. desktop。例如对hello,
    (可以将一个已有的desktop文件复制一份,做一些修改即可)
    采用了以下启动器文件(hello. desktop):
    [Desktop Entry]
    Comment=A Hello Program
    Exec=hello
    Icon=hello_wpb    //该项和3.3中所制作的图标相对应
    Type=Application
    Name=hello

    5. 运行应用程序
#qvfb&
#qpe

http://hi.baidu.com/428501/blog/item/24a3dd7b3bee98f20bd18740.html

你可能感兴趣的:(Qt)