OpenEdv-开源电子网

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

Qt程序如何以流程化执行而不是事件触发?

[复制链接]

2

主题

446

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4137
金钱
4137
注册时间
2018-5-14
在线时间
903 小时
发表于 2020-7-25 15:50:47 | 显示全部楼层 |阅读模式
10金钱
比如有个程序,要求初始化-(带UI)>外设启动(带UI)->等待外设到位(带UI)->然后循环运行(带UI)。这个怎么去做?Qt的函数都是基于事件去触发的。根本不好流程化去做,考虑用QThread,但是不运行exec根本无法运行信号和槽(全局的参数双线程访问也不安全,所以要用信号和槽),运行了exec又把程序阻塞了。从单片机的while(true){  }转到Qt的事件形式完全适应不过来。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

767

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5274
金钱
5274
注册时间
2019-9-25
在线时间
433 小时
发表于 2020-7-25 18:46:29 | 显示全部楼层
自己写类,写信号和槽对应的功能。转不过来也没办法咯
回复

使用道具 举报

2

主题

446

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4137
金钱
4137
注册时间
2018-5-14
在线时间
903 小时
 楼主| 发表于 2020-7-25 22:15:24 来自手机 | 显示全部楼层
茂茂2019 发表于 2020-7-25 18:46
自己写类,写信号和槽对应的功能。转不过来也没办法咯

缺少经验,看正点的程序就是一个mainwindows类写到底。但是目前我遇到的状况是不止一个界面,而且还有除了界面以外单独运行的各种功能,还有用户参数贯穿着全局,写完整个人就不好了,各种全局的类,各种全局变量。根本不符合代码的高内聚,低耦合要求。后期维护非常的困难。
回复

使用道具 举报

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
186
金钱
186
注册时间
2020-5-13
在线时间
20 小时
发表于 2020-7-25 22:15:51 | 显示全部楼层
多进程了解一下,用C语言写一个进程处理流程化,Qt进程负责界面相关,两个进程可以使用共享内存交互数据。
回复

使用道具 举报

2

主题

446

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4137
金钱
4137
注册时间
2018-5-14
在线时间
903 小时
 楼主| 发表于 2020-7-26 20:29:06 | 显示全部楼层
Jinddd 发表于 2020-7-25 22:15
多进程了解一下,用C语言写一个进程处理流程化,Qt进程负责界面相关,两个进程可以使用共享内存交互数据。

详细说说呢?
回复

使用道具 举报

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
186
金钱
186
注册时间
2020-5-13
在线时间
20 小时
发表于 2020-7-31 08:44:09 | 显示全部楼层

就是说你觉得QT写流程化不方便,你完全可以用C语言来写流程,QT进程和C语言写的进程一起跑,Linux下多进程运行了解吗,这两个进程之间的数据交互可以使用共享内存,我们公司的产品就是按照这种思路来的。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-25 14:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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