OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 15073|回复: 27

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

[复制链接]

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
发表于 2019-3-27 13:55:57 | 显示全部楼层 |阅读模式
本帖最后由 小温 于 2019-3-29 14:05 编辑

第一个嵌入式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...”。
图片1.png

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

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

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

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

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

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

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

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
图片9.png

10、参考本手册第6.3节内容“开发板如何通过NFS访问ubuntu指定目录?”,在开发板的命令行终端,执行以下命令,把可执行文件复制到开发板的 /opt/qt-application 目录。
cp  /mnt/ubuntu-nfs/qt-images/first_app  /opt/qt-application  -a
执行以下命令,运行可执行程序
cd  /opt/qt-application
./first_app  -qws
图片10.png

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

12、至此,第一个嵌入式Qt应用程序开发完成。


连载已迁移,请点击这里



思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

153

主题

310

帖子

0

精华

高级会员

Rank: 4

积分
673
金钱
673
注册时间
2019-3-26
在线时间
18 小时
发表于 2019-3-27 15:13:29 | 显示全部楼层
http://www.iis7.com/c/90/
回复 支持 反对

使用道具 举报

7

主题

38

帖子

0

精华

高级会员

Rank: 4

积分
521
金钱
521
注册时间
2015-4-25
在线时间
157 小时
发表于 2019-3-27 15:15:33 | 显示全部楼层
请教一下,我也是建立的QWidget工程,为什么我的程序在ARM板上跑没有最小化,最大化和关闭按钮?
回复 支持 反对

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
 楼主| 发表于 2019-3-27 15:16:05 | 显示全部楼层

原子哥没有打开这个版块,所以,在《帖子大杂烩》那里,是看不到的
思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复 支持 反对

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
 楼主| 发表于 2019-3-27 17:47:36 | 显示全部楼层
zhang1116quan 发表于 2019-3-27 15:15
请教一下,我也是建立的QWidget工程,为什么我的程序在ARM板上跑没有最小化,最大化和关闭按钮?

是不是你的工程没有把widget窗体显示出来?
思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复 支持 反对

使用道具 举报

7

主题

38

帖子

0

精华

高级会员

Rank: 4

积分
521
金钱
521
注册时间
2015-4-25
在线时间
157 小时
发表于 2019-3-27 23:22:13 | 显示全部楼层
小温 发表于 2019-3-27 17:47
是不是你的工程没有把widget窗体显示出来?

我在linux主机上是显示边框的,交叉编译放到板子上就不显示了
QT.jpg
回复 支持 反对

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
 楼主| 发表于 2019-3-28 08:31:00 | 显示全部楼层
zhang1116quan 发表于 2019-3-27 23:22
我在linux主机上是显示边框的,交叉编译放到板子上就不显示了

试试把窗体的分辨率固定为LCD的分辨率
思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复 支持 反对

使用道具 举报

7

主题

38

帖子

0

精华

高级会员

Rank: 4

积分
521
金钱
521
注册时间
2015-4-25
在线时间
157 小时
发表于 2019-3-28 10:24:02 | 显示全部楼层
小温 发表于 2019-3-28 08:31
试试把窗体的分辨率固定为LCD的分辨率

设置的是LCD的分辨率,你的QT使用的是哪个版本的?我用的QT5.6
回复 支持 反对

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
 楼主| 发表于 2019-3-28 10:38:18 | 显示全部楼层
zhang1116quan 发表于 2019-3-28 10:24
设置的是LCD的分辨率,你的QT使用的是哪个版本的?我用的QT5.6

我使用的是QT4.8
思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复 支持 反对

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
 楼主| 发表于 2019-3-28 10:41:31 | 显示全部楼层
zhang1116quan 发表于 2019-3-28 10:24
设置的是LCD的分辨率,你的QT使用的是哪个版本的?我用的QT5.6

你试试用QMainWindow构建窗体吧,我用QT5,也是一样,没有把关闭按钮显示出来。
思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复 支持 反对

使用道具 举报

7

主题

38

帖子

0

精华

高级会员

Rank: 4

积分
521
金钱
521
注册时间
2015-4-25
在线时间
157 小时
发表于 2019-3-28 11:26:28 | 显示全部楼层
小温 发表于 2019-3-28 10:41
你试试用QMainWindow构建窗体吧,我用QT5,也是一样,没有把关闭按钮显示出来。

我在网上搜索了很多移植QT5的,都没有显示关闭按钮,可能不支持了吧!或者没设置好
Since the Qt 5.0 release, Qt no longer contains its own window system (QWS) implementation.
QT5不支持QWS了
回复 支持 反对

使用道具 举报

0

主题

295

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2019-3-26
在线时间
9 小时
发表于 2019-4-13 09:35:42 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

3

主题

72

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1305
金钱
1305
注册时间
2015-12-3
在线时间
160 小时
发表于 2019-5-26 07:21:41 | 显示全部楼层
这个简单 早就会了 买块开发板 厂家会告诉你怎么搭环境  自己会c++写程序就够了
。。。。
回复 支持 反对

使用道具 举报

3

主题

72

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1305
金钱
1305
注册时间
2015-12-3
在线时间
160 小时
发表于 2019-5-26 07:23:17 | 显示全部楼层
这个买块开发板 厂家会告诉你搭环境 自己会写c++程序 qt已会
。。。。
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-4-21
在线时间
23 小时
发表于 2019-8-29 17:13:23 | 显示全部楼层
你这移植qt几呀
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2019-9-5
在线时间
0 小时
发表于 2019-9-5 13:10:53 | 显示全部楼层
帮顶,谢的还是挺详细的
回复 支持 反对

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
 楼主| 发表于 2019-9-9 14:11:29 | 显示全部楼层

你好,是QT4.8
思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复 支持 反对

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
 楼主| 发表于 2019-9-9 14:13:56 | 显示全部楼层
Tobegump 发表于 2019-9-5 13:10
帮顶,谢的还是挺详细的

感谢阅读
思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复 支持 反对

使用道具 举报

7

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1110
金钱
1110
注册时间
2019-5-6
在线时间
128 小时
发表于 2019-9-28 14:30:25 | 显示全部楼层
一直在关注小温,感谢分享,成长无止境。。。
回复 支持 反对

使用道具 举报

2

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
450
金钱
450
注册时间
2018-5-26
在线时间
91 小时
发表于 2019-10-23 15:58:07 | 显示全部楼层
帮顶!!!!!!!
回复 支持 反对

使用道具 举报

6

主题

1127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-10-25 12:02:32 | 显示全部楼层
帮忙顶一下
成功没有捷径
回复 支持 反对

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
 楼主| 发表于 2019-10-25 13:01:57 | 显示全部楼层
感谢帮顶!欢迎关注我的技术公众号 123.jpg

思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2019-10-31
在线时间
7 小时
发表于 2019-10-31 23:18:09 | 显示全部楼层
我安装Qt失败怎么办
回复 支持 反对

使用道具 举报

0

主题

201

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2552
金钱
2552
注册时间
2019-12-5
在线时间
352 小时
发表于 2019-12-23 10:52:49 | 显示全部楼层
顶一个,大神
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2018-12-13
在线时间
5 小时
发表于 2020-2-17 21:54:00 | 显示全部楼层
大神,请问qt库怎么移植啊,原子用的5.5.1版本,网上找的教程都不太行啊,请问你是怎么移植的
回复 支持 反对

使用道具 举报

12

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2020-3-11
在线时间
17 小时
发表于 2020-3-24 14:55:00 | 显示全部楼层
有没有学习的文档啊
回复 支持 反对

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
 楼主| 发表于 2020-3-25 12:51:32 | 显示全部楼层
z2500abc 发表于 2020-3-24 14:55
有没有学习的文档啊

你好,我的公众号有
思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复 支持 反对

使用道具 举报

3

主题

39

帖子

0

精华

高级会员

Rank: 4

积分
523
金钱
523
注册时间
2016-12-1
在线时间
109 小时
发表于 2020-3-25 17:11:13 | 显示全部楼层
4.8的现在不好找了吧?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-23 19:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表