第一个嵌入式QT应用程序

在成功安装 Qt Creator 开发环境后,我们通过一个简单的嵌入式Qt应用程序,来说明一下如何构建和编译一个Qt界面应用程序。
关于如何安装并构建 Qt Creator 开发环境,请参考以下帖子:

嵌入式Linux开发环境搭建-(5)安装和配置Qt Creator开发工具

目标:了解 Qt Creator 如何构建和编译工程,如何把应用程序放到开发板运行。

功能:通过点击触摸屏上的按钮,实现不同的显示效果。

我们把第一个Qt应用程序放在 ubuntu 系统的 /opt/work/qt-application/first_app 目录下。

1、打开 Qt Creator 开发环境,点击“New Project”,在弹出的对话框中,选择“Application”->“Qt Widgets Application”,点击“Choose...”。

2、点击“Choose...”后,在弹出的对话框中,设置项目名称和项目的保存路径,笔者把项目保存在 /opt/work/qt-application/first_app 目录下,然后点击“下一步”,如下图所示:

3、在弹出的对话框中,选择构建套件,工具链选择“imx6ul-toolchain”,我们目前在debug环境下调试,因此,去除“Release”选项,再点击“下一步”。

4、在弹出的对话框中,我们选择构建界面的基类,我们选择“QWidget”作为基类,类名,头文件,源文件,界面文件这些属性,可以重命名,笔者选择默认。然后点击“下一步”。(关于“QWidget”和“QMainWindow”的区别,可自行上网查询,这里不作详细描述。)

5、在弹出的对话框中,选择版本控制软件,目前笔者没有进行版本控制,选择“None”,最后点击“完成”。Qt工程构建完毕。

6、工程创建完成后,开发界面如下图所示。关于Qt的具体编程细节,本手册不作描述。本手册的所有源码均公开,源码含有适当的注释以辅助阅读,开发者可作学习参考。

7、双击打开widget.ui文件,设计一个简单的Qt界面,含有一个文本显示控件和三个按钮,点击不同的按钮,会在文本显示框内显示不同内容。

8、双击打开widget.cpp文件,完成代码编辑,如下图所示。

9、点击左下角的构建按钮,完成工程构建。工程构建完成后,生成的可执行文件存放在 ubuntu 系统的 /opt/work/qt-application/first_app/build-first_app-imx6ul_toolchain-Debug 目录。执行以下命令,把可执行文件复制到ubuntu系统与开发板的共享目录。

cp  build-first_app-imx6ul_toolchain-Debug/first_app  /opt/work/qt-images/  -a

10、参考 嵌入式Linux开发环境搭建-(3)配置Ubuntu16.04.2 LTS 系统,NFS成功挂载后,在开发板的命令行终端,执行以下命令,把可执行文件复制到开发板的 /opt/qt-application 目录。

cp  /mnt/ubuntu-nfs/qt-images/first_app  /opt/qt-application  -a

执行以下命令,运行可执行程序

cd  /opt/qt-application

./first_app  -qws

11、可执行程序在开发板里运行的界面,如下图所示,点击不同的按钮,文本显示窗口有不同的显示内容。

点击这里,下载本章节源码

嵌入式Linux应用程序开发-(1)第一个嵌入式QT应用程序相关推荐

  1. 嵌入式 Linux 内核驱动开发【The first day: 36093万字】

    嵌入式 Linux 内核驱动开发[1] 嵌入式 Linux 内核驱动开发前言 第1章 Linux 内核裁剪和定制 [1]Linux 内核开发简介 [2] Linux 源码阅读工具 [1.2.1]Sou ...

  2. linux cached释放_正点原子Linux第四十一章嵌入式Linux LED驱动开发实验

    1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 第四十一章嵌入式Linux LED驱动开发实验 上一章我 ...

  3. 嵌入式linux系统应用开发

    关于嵌入式系统   平时大家说的嵌入式其实范围比较广的,是一种软硬件可裁剪,以应用为中心开发的专用系统,硬件平台可以是单片机,或者以ARM系列的处理器.单片机一般直接裸奔程序,不过现在有了好多基于单片 ...

  4. 【正点原子Linux连载】第四十一章 嵌入式Linux LED驱动开发实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  5. ARM嵌入式Linux系统设计与开发

    ARM嵌入式Linux系统设计与开发 基本信息 作者: 俞辉    李永    刘凯    王晓虹    丛书名: 高等院校计算机教材系列 出版社:机械工业出版社 ISBN:9787111300045 ...

  6. 嵌入式linux与ARM开发板的入门建议

    2019独角兽企业重金招聘Python工程师标准>>> 第一,学习基本的裸机编程. 对于学硬件的人而言,必须先对硬件的基本使用方法有感性的认识,更必须深刻认识该硬件的控制方式,如果一 ...

  7. [嵌入式Linux项目实战开发]基于QT4.7.4的音乐播放器实现与设计【2018年给力项目】

    [嵌入式Linux项目实战开发]基于QT4.7.4的音乐播放器实现与设计[2018年给力项目]是[创科之龙]团队aiku嵌入式视频教程系列制作的现有的音乐播放器. 主要功能实现: 1.新建工程,基类选 ...

  8. 嵌入式linux设备驱动开发,嵌入式Linux设备驱动开发简介.pdf

    清远见--嵌入式培训专家 http :// "黑色经典"系列之<嵌入式Linux 应用程序开发详解> 11 章 嵌入式Linux 设备驱动开发 本章目标 本书从 6 章 ...

  9. 【正点原子MP157连载】第二十一章 嵌入式Linux LED驱动开发实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

  10. 【嵌入式Linux(基础篇)】嵌入式Linux底层系统开发流程和应用开发流程

    1.嵌入式Linux系统体系架构 一个完整的嵌入式Linux系统体系架构如图,大概可以分为三步: 硬件PCB板设计 底层系统开发 应用开发 2.硬件PCB设计流程 ① 获取所用芯片芯片手册: ② 建立 ...

最新文章

  1. parameter缩略语_缩略语
  2. kali linux网络配置
  3. java.sql.SQLException: ORA-00923: FROM keyword not
  4. 心灵战争服务器维护,心灵战争服务器异常产生哪些问题如何解决_心灵战争服务器异常产生问题及解决方法_玩游戏网...
  5. 余弦距离和欧氏距离,知道原理和公式后真的很简单
  6. 编译错误:GL/glew.h, GL/glut.h, EGL/egl.h没有那个文件或目录
  7. ADS学习笔记—3.仿真实例
  8. oracle中的删除与数据库中的回收站
  9. C#文件和文件文件夹排序
  10. linux系统取消自检,Linux 磁盘自检设置
  11. 《c语言程序设计》第一次网上作业,精编国家开放大学电大《C语言程序设计》《劳动与社会保障法》网络课形考网考作业(合集)答案...
  12. html常用标签和属性
  13. 12032 解救小哈
  14. 软件开发必备英语汇总
  15. TTL怎么计算拉电流和灌电流_配电线路安全电流如何计算?低压供电线路导线怎么选择?图文详解...
  16. CentOS 7 最小安装后的 简易桌面安装
  17. 从GCT的成绩看问题
  18. CodePen最佳实例分享
  19. 2022年RPA将从IT领域继续扩展至非IT领域,非IT领域5大场景RPA应用
  20. 关闭本机的445端口

热门文章

  1. window hello指纹设置不了,弹窗闪退。
  2. java数组游戏_关于数组:扑克游戏:使用Java创建卡片组
  3. nvm 1.1.6百度网盘下载
  4. linux 所有服务都无法开启,查看log Fatal server error (EE) Could not create lock file in /tmp/.tX0-lock
  5. autoit 3常用快捷键
  6. 世界热力地图 R语言
  7. 八数码问题的广度优先搜索方法
  8. ethtool用法 linux_Linux命令--ethtool
  9. 驰骋工作流程引擎——流程设计器操作说明书
  10. JAVA多线程:守护线程 setDaemon全方位剖析| 守护线程是线程吗 |thread.isAlive()反思(五)