在qtopia中添加应用_x86-qtopia(基于mini2440-Friendly)

在qtopia中添加应用_x86-qtopia(基于mini2440-Friendly)

分类: GUI开发-Qt   582人阅读  评论(0)  收藏  举报

在qtopia中添加应用_x86-qtopia(基于mini2440-Friendly)

环境:
Fedora9
vmware6.5
mini2440开发板
arm-linux-gcc 4.3.2

qtopia-2.2.0

安装:

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

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

在x86平台的qtopia中添加应用

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

1、build

#!/bin/bash

source /opt/FriendlyARM/mini2440/x86-qtopia/qtopia-2.2.0-FriendlyARM/setQpeEnv
qmake -o Makefile -spec /opt/FriendlyARM/mini2440/x86-qtopia/qtopia-2.2.0- FriendlyARM/qtopia/mkspecs/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的应用,点击能运行。

你可能感兴趣的:(GUI开发-Qt)