qtopia-2.2.0 第一个 Qt 应用程序的 --- 开发流程--- x86下


原博客网址: https://blog.csdn.net/yikai2009/article/details/8826132

因为我的路径稍有不同,为了减轻下次开发难度(下次不知道什么时候开发呢),特意复制粘贴过来,为己所用^_^

我用的是友善之臂的tiny210


完成了 Qt 在 PC 上和 ARM 上的编译,

一般制作 ARM 下的应用程序,可以先在 X86 下实现,最后再移植到 ARM 下.


设置 Qt 变量:(未设置)

再在 终端 qtopia 目录下,source setX86_QpeEnv .

[cpp]  view plain  copy
  1. [root@localhost Qte]# pwd  
  2. /opt/EmbedSky/Qte  
  3. [root@localhost Qte]# source  setX86_QpeEnv   
  4. [root@localhost Qte]#   

完成设置变量的操作,注意这个变量设置的操作仅在当前终端下有效.


图形按钮制作步骤:


1, 建立 Qt 的项目文件:

在 PC Linux 的 " /opt/EmbedSky/Qte/x86_qtopia/pro " 目录下建立一个名为:first  的目录.

以后的 应用程序 都放到 " pro/ " 目录下.


2, 在后台启动 qt 设计器:

qt2/bin/designer & 

友善之臂路径:

在后台运行:

[cpp]  view plain  copy
  1. [root@localhost x86-qtopia-2.2.0]# pwd  
  2. /opt/EmbedSky/Qte/x86-qtopia-2.2.0  
  3. [root@localhost x86-qtopia-2.2.0]# qt2/bin/designer &  
  4. [1] 6543  
  5. [root@localhost x86-qtopia-2.2.0]#  


3, 新建一个 qt 工程:





4, 主界面名称 和 标题信息:



5, 新建按钮:


6, 按钮名称 和 按钮显示信息:









7, 添加按钮响应函数:

完成上面的设置后,需要添加函数,使得刚刚建立的按钮能对其进行响应.





8, 建立 信号 与 槽 的关联:

下面的操作涉及到 Qt 中的信号和槽的概念,可以理解为 按钮的操作是 信号

 就是该操作所响应的函数.









同样建立 close 按钮的 信号 和槽的相应关联.


9, 去除 close 函数:

回到第 7 步,去除 close 函数:




10, 保存工程文件:



uic 产生源代码  first . h  first . cpp  moc_first . cpp:

使用 uic 软件将刚刚建立的工程转换为源代码.

首先建立一个可执行的脚本来完成文件的转换.

1, 建立 ui2cpp 脚本:

[cpp]  view plain  copy
  1. #gedit ui2cpp  


2, 设置脚本为可执行:

[cpp]  view plain  copy
  1. #chmod +x ui2ccp  

3, 执行 ui2cpp 脚本, 生成源码:

[cpp]  view plain  copy
  1. #./ui2cpp  


4, 注意 ui2ccp 脚本:

每次使用 设计器修改 并 保存 *.ui 的工程文件后,必须使用 ui2cpp 脚本 重新产生源代码,否则会编译出错,

所以一般,使用 设计器 做完界面后,就不再使用了 而是直接修改生成的源代码.


新建添加 main . cpp 文件 ,将 可执行文件 和 主界面名称 关联:

这里用到上面脚本生成的 头文件,操作如下:

[cpp]  view plain  copy
  1. #gedit main.cpp  


使用 progen 产生 * . pro 文件:


友善之臂的progen路径




使用 tmake 中的 progen 软件产生 pro 文件:



完善 * . pro 文件:



使用 上步的 * . pro 文件生成 Makefile 文件:

1, 使用 tmake 软件生成 Makefile 文件:

使用上步的 pro 文件使用 tmake 软件生成 Makefile 文件.

[cpp]  view plain  copy
  1. #tmake -o Makefile first.pro  

2, 修改 Makefile 文件 注意 重复出现 问题:

关于 重复出现 的问题,可以参考我博客的  qtopia-2.2.0 make overriding commands --- 问题解决

 http://blog.csdn.net/yikai2009/article/details/8825201 
下面只列出修改的代码:

[cpp]  view plain  copy
  1. LINK    =   g++  
  2. TARGET  =   $(QPEDIR)/image/opt/Qtopia/bin/first  
  3. DESKTOP =   $(QPEDIR)/image/opt/Qtopia/apps/EmbedSky/first.desktop  
  4. ICON =      $(QPEDIR)/image/opt/Qtopia/pics/first.png  
  5. all: $(TARGET)  
  6.     cp -f first.desktop $(DESKTOP)  
  7.     cp -f first.png $(ICON)  
  8. clean:  
  9.     -rm -f $(OBJECTS) $(OBJMOC) $(DESKTOP) $(ICON) $(TARGET)  
  10.     -rm -f *~ core  


编译出错

main.cpp: In function ‘QWidget* create_first(QWidget*, const char*, uint)’:
main.cpp:5: error: expected type-specifier before ‘first’
main.cpp:5: error: cannot convert ‘int*’ to ‘QWidget*’ in return
main.cpp:5: error: expected ‘;’ before ‘first’
main.cpp:5: error: ‘first’ was not declared in this scope




原因:


你的first.cpp中setName("first")是这样的吗?如果不是改过来就可以了。
问题主要出在.ui文件的文件名虽然改成first.ui但里边的内容根本就没有改成和文件名相符的名字,因此编译时出现这种错误。

所以,将QTOPIA_ADD_APPLICATION("camera",camera)中后面的camera改成Camera即可



制作桌面启动器 * . desktop  即是 桌面显示的应用程序 名称:

[cpp]  view plain  copy
  1. #gedit first.desktop  




制作 中文 启动器:




制作 桌面 图标 --- Icon:

在 ps 下:



将 ICON 图标 拷贝到 当前 项目目录中.


修改 * . cpp 文件:

为了实现前面的 按下 user_button 按钮,出现打印信息,需要修改 first.cpp 源文件.

[cpp]  view plain  copy
  1. void first::user_button()  
  2. {  
  3.     user_t->setText( tr( "Hello, Qt Application !" ) );  
  4. //    qWarning( "first::user_button(): Not implemented yet!" );  
  5. }  

编译 并 仿真:

编译 make :

[cpp]  view plain  copy
  1. #make  


仿真 /optEmbedSky/Qte/test_x86 :





将代码复制到/opt/Qtopia/bin目录下,执行


出现下面错误:

1.[root@FriendlyARM bin]# ./camera
./camera: error while loading shared libraries: libqtopia.so.1: cannot open shar
ed object file: No such file or directory

原因:未将so考到开发板上。在考so的时候遇到一个问题,虚拟机的连接文件怎么考入开发板,我用了一个笨方法,那就是压缩,压缩之后把压缩包经Windows考入到开发板上,在开发板上解压即可



2.[root@FriendlyARM bin]# ./camera
Cannot find font definition file /usr/local/qt-embedded/lib/fonts/fontdir - is $
QTDIR set correctly?

解决办法:将qt2路径下的fonts考到开发板即可,如果开发板usr下没有报错路径,则新建文件路径即可







  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值