嵌入式系统学习——x86-qtopia添加应用

          在x86-qtopia中添加应用(基于mini2451-Friendly)

环境:
Redhat
vmware11
mini2451开发板
arm-Linux-gcc 4.3.2

qtopia-2.2.0

安装:

参考友善的mini2451用户手册,分别安装x86平台和arm平台的qtopia-2.2.0。

友善在/opt/这个目录下,产生了两个子目录,分别是x86-qtopia和arm-qtopia.


在x86平台的qtopia中添加应用

一、详细理解x86-qtopia中的例程hello

1、build

#!/bin/bash
source ../qtopia-2.2.0-FriendlyARM/setQpeEnv
qmake -o Makefile -spec qws/linux-generic-g++ *.pro
make clean
make

第一行     告诉内核正在运行的是一个bash脚本

第二行     设置环境变量(具体可见setQpeEnv这个文件)

第三-四行 根据工程文件*.pro,产生Makefile

第五行     如果之前曾make过,则删除旧的目标文件

第六行     重新make

(注意make后生成的目标文件在x86-qtopia/qtopia-2.2.0- FriendlyARM/qtopia/bin/,在Makefile里指定了)

2、run-hello

#!/bin/sh

../qtopia-2.2.0-FriendlyARM/qt2/bin/qvfb -width 240 -height 320 -depth 16 &
#export CAMERA_DEVICE=/dev/video1
#qtopia-2.2.0-FrinedlyARM/qt2/bin/qvfb -width 640 -height 480 -depth 16 &
cd ../qtopia-2.2.0-FriendlyARM/qtopia/image
mkdir root 2>/dev/null || true
export HOME=$PWD/root
cd opt/Qtopia
export PATH=$PWD/bin:$PATH
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBARAY_PATH
export QTDIR=$PWD
export QPEDIR=$PWD
export KDEDIR=$PWD/../kde

sleep 3
../../../bin/hello -qws

第一行        告诉内核正在运行的是一个shell脚本

第二行        设置模拟器qtopia的大小240×320

第三-四行    注释(可删除)

第五行        进入image文件夹


三、在qtopia中添加自己编写的应用程序

步骤与“将hello例程添加到qtopia应用中”的步骤一样,但是这个应用程序是我们自己编写,因此必须要通过编译。

因此这里主要将如何编写我们的应用程序,及如何编译。这里根据我的一个简单程序讲解

这里我假设你已经会通过编写qt程序设计qt界面,而不是通过designer设计qt界面

1、在x86-qtopia下建一个文件夹,取名counter

2、唯一与qt开发有点区别的是main.cpp文件!当然要注意在程序编写过程中由于qt版本的不同,有些类的参数可能不

    一样,甚至有些类是不能用的。以下为源程序(不做讲解)。

*.h和*.cpp文件:

counter.h:

#ifndef COUNTER_H
#define COUNTER_H

#include <qlabel.h>
#include <qwidget.h>
#include <qpushbutton.h>
#include <qlayout.h>

class Counter : public QWidget
{
 Q_OBJECT 

public:
 Counter(QWidget *parent=0 , const char *name=0, WFlags f=0);
 ~Counter();
 QPushButton *AddButton;
 QPushButton *SubButton;

public slots:
 void IncCounter();
 void DecCounter();

private:
 int counter;
 QVBoxLayout *counterVBoxLayout;
 QLabel *CounterLabel;
};

#endif

counter.cpp:

#include "counter.h"

Counter::Counter(QWidget *parent, const char *name, WFlags f) : QWidget(parent, name, f)
{
 counter = 0;
 AddButton = new QPushButton("Add", this);
 SubButton = new QPushButton("Sub", this);
 CounterLabel = new QLabel(tr("0"), this);
 CounterLabel->setAlignment(Qt::AlignCenter);
 counterVBoxLayout = new QVBoxLayout(this);
 counterVBoxLayout->addWidget(AddButton);
 counterVBoxLayout->addWidget(SubButton);
 counterVBoxLayout->addWidget(CounterLabel);
 QObject::connect(AddButton, SIGNAL(clicked()), this, SLOT(IncCounter()));
 QObject::connect(SubButton, SIGNAL(clicked()), this, SLOT(DecCounter()));
}

Counter::~Counter()
{
}

void Counter ::IncCounter()
{
 CounterLabel->setNum(++counter);
}

void Counter ::DecCounter()
{
 CounterLabel->setNum(--counter);
}


main.cpp:

#include "counter.h"
#include <qtopia/qpeapplication.h>

QTOPIA_ADD_APPLICATION("counter",Counter)
QTOPIA_MAIN

//main.cpp 是一个通用的模板,只需要修改第一行和第三行。 

3、拷贝:将例程hello下build,run-hello,hello.pro,hello.desktop文件拷贝过来。

     修改名字为:run-counter,counter.pro,counter.desktop

4、修改run-counter

     最后一句../../../bin/hello -qws,将hello修改为counter

5、修改counter.desktop

    Exec=hello      //可执行文件的名字 <-修改

    Icon=Hello      //图标名   <-修改

    Type=Application  //类型为应用程序
    Name=Hello2440  //在界面生显示的名字 <-修改

3、修改counter.pro

CONFIG  += qtopiaapp
CONFIG  -= buildQuicklaunch
DESTDIR = $(QPEDIR)/bin

HEADERS = hello.h      //头文件 <-修改
SOURCES = hello.cpp  //源程序 <-修改

SOURCES+=main.cpp

INTERFACES = hello_base.ui   //用designer生成的,这里没用到  <-删除
TARGET  = hello        //目标名  <-删除

(注意:没用designer设计界面,则这句必须删除INTERFACES = hello_base.ui)

4、其他的与“将hello例程添加到qtopia应用中”的步骤一样

第八行        进入Qtopia文件夹

第九-十三行 设置环境变量

第十四行      睡眠3秒(至于为什么,暂时不知道)

第十五行      用模拟器打开hello程序

二、将hello例程添加到qtopia应用中(即在x86-qtopia下运行./run出现的qtopia模拟器)

1、理解hello.desktop

 [Desktop Entry]
Comment=An Example Program   //说明而已,没什么用
Exec=hello      //可执行文件的名字

Icon=Hello      //图标名

Type=Application  //类型为应用程序
Name=Hello2440  //在界面生显示的名字

2、将hello.desktop复制到

    x86-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/image/opt/Qtopia/apps /Applications/

3、找一个图标,最好压缩下(我压缩成64×64左右),图标改成png格式,取名Hello。最好在工程文件夹(即x86-

    qtopia/hello)下建一个与工程名同名的文件夹(这里为hello)。将该图标复制到该文件夹下。再将该文件夹复制到

    x86-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/image/opt/Qtopia/pics/

4、将x86-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/bin/文件夹下的hello可执行文件复制到

    x86-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/image/opt/Qtopia/bin/

5、重新在x86-qtopia下运行./run,你将能看到添加的名字为Hello2440的应用,点击能运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值