飞凌嵌入式
直播中

栾新科

10年用户 519经验值
擅长:嵌入式技术
私信 关注
[技术]

飞凌嵌入式Qtopia2.2.0环境搭建(四)——Qtopis2.2.0的使用

飞凌嵌入式Qtopia2.2.0环境搭建(四)——Qtopis2.2.0的使用


上一章得到了qtopia-2.2.0/qtopia/image/opt/Qtopia这个结果,这里面实际上包含了所有的应用程序。接着就要把这些代码放到板子的根文件系统中,这里不建议初学的读者从零开始建立一个根文件系统,而直接通过超级终端将开发板/opt/目录下的Qtopia用新编译的替换掉,这样自己的qtopia就在开发板上安装好了。在超级终端执行命令 #qtopia &,程序运行如下:
我们以一个HelloWord为例,来了解下如何编译一个Qtopia2.2.0应用程序放到开发板上运行:
  5.1 在linux终端中键入以下命令创建该目录:
      #mkdir -p /root/qtopia2_apps
  5.2 在qtopia_apps目录下创建hello作为本示例的项目目录,在终端输入以下命令:
      #cd /root/qtopia2_apps
      #mkdir hello
  5.3 使用designer 工具设计图形界面,Qt/Qtopia都有designer工具,可以设计所见即所得的图形界面。主界面命名为hello_from.ui,输入以下命令并以ui文件名作为参数:
  # cd hello
#/root/yizhi/qtopia-free-2.2.0/qt2/bin/designer ui_hello.ui

5.4 在弹出的new from界面中,选择”widget”然后点击ok,我们将创建一个基于QWidget的窗体:

5.5 这时将会显示窗口的编辑界面,我们修改窗体的大小使得开发板屏幕能够完整显示我们的程序,修改窗口属性:

5.6在窗口上放置控件,在工具栏上点击药放置的控件,在再窗口空白处点击一下即可:修改控件的属性的方法是点击控件,在左侧的属性窗口进行修改,修改button显示信息为”close”

5.7 为按钮添加点击事件的处理,我们首先创建一个slot函数。用于处理button的click事件,新建slot的步骤如下:
   5.7.1 点击edit菜单,选择Slots”,将弹出如下所示的编辑对话框:

5.7.2  在上面的对话框中,点击”New slot”按钮,然后在slot编辑框中输入”btn_closeclicked()”,然后点击ok保存并退出如下图;

至此,slot添加完毕,现在讲slot函数与按钮点击事件对应起来;
       5.8 点击工具栏的Connect Signal/Slots图标,然后参照下图所示进行操作,在按钮上按下鼠标左键不放然后拖到窗口的空白处放开鼠标,操作完成后会弹出Edit Connects对话框:将clicked()事件和slots连接起来,点击ok即可

至此,界面设计完毕,可以进入写代码环节。
   5.9 我们需要创建三个源码文件,一个是头们见hello.h,一个是源代码文件hello.cpp,一个是main.cpp:
   #gedit main.cpp
   然后添加如下内容:
   /***********************************/
    #include “hello.h”
    #include  tion.h>
    QTOPIA_ADD_APPLICATION(“hello”,THelloForm)
    QTOPIA_MAIN
  /**************************************/
    main.cpp只有4行源代码。它的实现很简单。宏展开后会是一个main函数,然后创建QPEApplication对象和THelloForm主窗口对象,最后显示主窗口并执行QApplication::exec()进入事件循环,接下来创建hello.h和THelloForm类.
  5.10 创建hello.h和THelloForm类:
#gedit hello.cpp
/*********************************************/
#include
#include "hello.h"
QHelloForm::QHelloForm(QWidget * parent, const char * name, WFlags f)  
{      
}  
QHelloForm::~QHelloForm()  
{


}  
void QHelloForm::btn_closeclicked()
{
  close();
}   
/***********************************************/
#gedit hello.h
/***********************************************/
#include "ui_hello.h"
class QHelloForm: public hello_form
{
Q_OBJECT  
public:
  QHelloForm(QWidget * parent = 0, const char * name = 0, WFlags f = WType_TopLevel);  
virtual    ~QHelloForm();  
private slots:
  void btn_closeclicked();
};
/**************************************************************/
5.11 编写hello.pro
     #gedit hello.pro
/*********************************************/
CONFIG += qtopiaapp  
CONFIG -= buildQuicklaunch  
TARGET = hello
# Input
HEADERS += hello.h
INTERFACES += ui_hello.ui
SOURCES +=hello.cpp main.cpp
/******************************************/
    上面的项目文件中CONFIG += qtopiaapp 表示要编译的是一个Qtopia程序,HEADERS和SOURCES 列出了hello的源代码和头文件清单,而TARGET则指定最后生成的可执行文件名hello,CONFIG -= buildQuicklaunch 的意思是需要编译一个独立的可执行程序。而不是应用程序插件。
  5.12 创建一个开发板的编译脚本
#gedit build
/*********************************************/
#!/bin/bash
source /root/yizhi/qtopia-free-2.2.0/setQpeEnv
Qmake -spec /root/yizhi/qtopia-free-2.2.0/qtopia/mkspecs/qws/linux-ARM-g++ -o Makefile *.pro
make clear
Make
/*********************************************/
5.13创建.desktop文件
/********************************************/
[Translation]  
File=QtopiaSettings  
Context=hello  
Comment[Desktop Entry/Name]=Use soft hyphen (char U00AD) to indicate hyphenation
[Desktop Entry]  
Exec=hello
Icon=hello
Type=Application  
Name[]=hello
CanFastload=0
/**************************************/
保存。其中Icon图像为hello.png
5.14 编译生成应用程序:
    执行 ./build脚本生成hello应用程序,我们就可以把这个程序放到开发板上运行了。
5.15 程序在开发版上运行:在开发板的opt/Qtopia/apps下增加forlinx目录,将生成的hello应用程序放到开发板的opt/Qtopia/bin下,hello.desktop文件放到opt/Qtopia/apps/forlinx下,hello.png放到opt/Qtopia/pics下,注意程序的权限,拷贝后用chmod命令给程序修改权限。重新启动qtopia程序,在超级终端输入#qtopia &命令,如下图多出的forlinx一栏就是咱们自己创建的,可以把自己的应用程序放在下边




更多回帖

发帖
×
20
完善资料,
赚取积分