硬汉嵌入式论坛

 找回密码
 立即注册
查看: 921|回复: 36
收起左侧

上位机如何选择?

  [复制链接]

14

主题

117

回帖

159

积分

初级会员

积分
159
发表于 2025-8-19 10:47:14 | 显示全部楼层 |阅读模式
目前公司情况如下:QT写C++,VS写C#的wpf。我被抓去写上位机和下位机。但是上位机我不太了解。打算好好学习一下。比较想知道C++和C#哪个写出来的上位机效率高?WPF和WINFORM哪个更好?目前大佬们用什么写上位机?可以的话想听听大佬的心得
回复

使用道具 举报

0

主题

45

回帖

45

积分

新手上路

积分
45
发表于 2025-8-19 11:35:01 | 显示全部楼层
和我一样,QT写C++,VS写C#的wpf,不过后续的win端准备放弃QT了,用wpf足够了。wpf的开发效率高,mvvm开发模式也更先进。我记得qt的新的版本都不提供离线安装包了,所以qt我停留在了5.12.qt的授权机制也现在也让人摸不着头脑,qt后续主推的是qml
回复

使用道具 举报

2

主题

41

回帖

47

积分

新手上路

积分
47
发表于 2025-8-19 11:45:02 | 显示全部楼层
这个我可以说一下,因为我QT和C#都写。
首先你说的效率如果是执行效率的话,我想其实可以不用考虑,大部分情况下上位机的需求是不需要考虑所谓执行效率的。
开发效率的话我建议QT C++,因为毕竟C++会更熟悉,而且我觉得QT的信号和槽的机制会比C#的事件订阅更好理解(个人见解,主要是觉得添加私有订阅事件比较麻烦),另外我觉得QT的UI设计要比winform和WPF方便很多。
至于说winform和WPF,winform更底层,是直接基于GDI绘制图形界面的,也就意味着你想要好看的UI需要更多的代码量(就是手撸代码扩展性差),而且winform只支持单向数据绑定,对于UI和后台的数据同步比较繁琐。
WPF的话我目前有一个项目是用了的,优点就是多了一个xaml用来设计UI,UI和后台分离比较好(且支持双向数据绑定),而且xaml熟练之后可以设计很好看的UI,但是好像有些时候比较吃电脑性能?我做了一个多通道数据波形显示的功能,通道和数据变多就会很卡,但是理论上哪些数据量对于PC应该不是很大,我之前用QT做过类似需求,没有出现过这种问题,可能是我对WPF的UI线程和后台线程理解不到位,毕竟也是初学
回复

使用道具 举报

4

主题

421

回帖

433

积分

高级会员

积分
433
发表于 2025-8-19 11:49:43 | 显示全部楼层
aardio用户路过,写内部串口小工具还是很方便的。
回复

使用道具 举报

3

主题

8

回帖

17

积分

新手上路

积分
17
发表于 2025-8-19 11:58:58 | 显示全部楼层
一直用的qt写上位机,c++或者python都行
回复

使用道具 举报

14

主题

117

回帖

159

积分

初级会员

积分
159
 楼主| 发表于 2025-8-19 13:20:18 | 显示全部楼层
cctv180 发表于 2025-8-19 11:49
aardio用户路过,写内部串口小工具还是很方便的。

领导让我写个稍微好点的,以后可能也会写面向客户的。请问大佬提到的这个大概是什么样子的?
回复

使用道具 举报

11

主题

59

回帖

92

积分

初级会员

积分
92
发表于 2025-8-19 13:29:50 | 显示全部楼层
python写上位机怎么样?
回复

使用道具 举报

14

主题

117

回帖

159

积分

初级会员

积分
159
 楼主| 发表于 2025-8-19 13:42:32 | 显示全部楼层
quanshimutou 发表于 2025-8-19 13:29
python写上位机怎么样?

没了解过,目前公司都是C++和C#的
回复

使用道具 举报

3

主题

436

回帖

445

积分

高级会员

积分
445
发表于 2025-8-19 14:13:22 | 显示全部楼层
用Qt写比较合适,网上QSerialPort资源很多。
回复

使用道具 举报

14

主题

117

回帖

159

积分

初级会员

积分
159
 楼主| 发表于 2025-8-19 14:57:48 | 显示全部楼层
glory 发表于 2025-8-19 14:13
用Qt写比较合适,网上QSerialPort资源很多。

这倒确实,目前用QT写过简单的串口和以太网的上位机。只是看人家说QT生成的文件体积很大,正巧赶上这个机会,打算多了解一下上位机,确定一下未来开发工具
回复

使用道具 举报

7

主题

339

回帖

360

积分

高级会员

积分
360
发表于 2025-8-19 15:04:29 | 显示全部楼层
c# WINFORM 最快了,熟悉的话一周基础入门。WPF太复杂了不推荐入门
回复

使用道具 举报

14

主题

117

回帖

159

积分

初级会员

积分
159
 楼主| 发表于 2025-8-19 15:45:20 | 显示全部楼层
fxyc87 发表于 2025-8-19 15:04
c# WINFORM 最快了,熟悉的话一周基础入门。WPF太复杂了不推荐入门

不考虑学习难度,只考虑总发展及做出来产品的质量
回复

使用道具 举报

7

主题

339

回帖

360

积分

高级会员

积分
360
发表于 2025-8-19 15:55:13 | 显示全部楼层
陈清 发表于 2025-8-19 15:45
不考虑学习难度,只考虑总发展及做出来产品的质量

WPF炫酷,但难度大,时间长,
winform传统应用也不错。wpf上下层分离,适合多人协作
如果就你一个人上下包了那还是winform简单。
回复

使用道具 举报

14

主题

117

回帖

159

积分

初级会员

积分
159
 楼主| 发表于 2025-8-19 16:02:27 | 显示全部楼层
fxyc87 发表于 2025-8-19 15:55
WPF炫酷,但难度大,时间长,
winform传统应用也不错。wpf上下层分离,适合多人协作
如果就你一个人上 ...

佬,请问上下层分离是指什么?
回复

使用道具 举报

14

主题

117

回帖

159

积分

初级会员

积分
159
 楼主| 发表于 2025-8-19 16:26:11 | 显示全部楼层
断断续续看了一下午,结论是打算选择QT。
原因:
1、跨平台比较友好。
2、对硬件交互更友好
3、性能方面也会更强
困难点:
1、C++学习难度较大
2、QT开发难度大(内存管理、多线程等)

打算专心学习C++和QT了
回复

使用道具 举报

356

主题

2187

回帖

3260

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3260
发表于 2025-8-19 16:43:46 | 显示全部楼层
本帖最后由 caicaptain2 于 2025-8-19 16:48 编辑
陈清 发表于 2025-8-19 16:26
断断续续看了一下午,结论是打算选择QT。
原因:
1、跨平台比较友好。

QT以前有免费的社区版可用,现在收费了,不便宜。

以前QT和C++零基础,在B站上看了一个6集的入门视频,大概1星期后,后面就可以自己查帮助手册。花了1个月左右就可以写了几个QT上位机程序,串口通讯,字符串加解密,产品远控。
回复

使用道具 举报

14

主题

117

回帖

159

积分

初级会员

积分
159
 楼主| 发表于 2025-8-19 16:47:43 | 显示全部楼层
caicaptain2 发表于 2025-8-19 16:43
QT以前有免费的社区版可用,现在收费了,不便宜。

总会有办法的
回复

使用道具 举报

43

主题

1067

回帖

1201

积分

至尊会员

积分
1201
发表于 2025-8-19 17:11:17 | 显示全部楼层
当然是C#/WPF,理由如下:
1. 可以简单的做出炫酷的界面;
2. 现在C#支持AOT,直接生成原生代码,不用担心效率和反编译;
3. 使用非常简单,因为有AI了,现在写个函数或者什么的,ChatGPT直接联想出来了;不会就直接问AI,几乎没有了难度;
4. visual studio的强大和简易,对开发非常友好。

我就是放弃qt,转向C#的。
回复

使用道具 举报

43

主题

1067

回帖

1201

积分

至尊会员

积分
1201
发表于 2025-8-19 17:17:16 | 显示全部楼层
现在QT怎么样我也不知道了,想想静态编译怎么搞,怎么发布。另外,QT自己也搞了QML,我觉得还不如wpf/xaml
回复

使用道具 举报

14

主题

117

回帖

159

积分

初级会员

积分
159
 楼主| 发表于 2025-8-19 17:24:37 | 显示全部楼层
ghslfgkkl88 发表于 2025-8-19 17:11
当然是C#/WPF,理由如下:
1. 可以简单的做出炫酷的界面;
2. 现在C#支持AOT,直接生成原生代码,不用担 ...

USB串口这种硬件交互使用起来如何?
回复

使用道具 举报

14

主题

117

回帖

159

积分

初级会员

积分
159
 楼主| 发表于 2025-8-19 17:24:47 | 显示全部楼层
ghslfgkkl88 发表于 2025-8-19 17:17
现在QT怎么样我也不知道了,想想静态编译怎么搞,怎么发布。另外,QT自己也搞了QML,我觉得还不如wpf/xaml

我看现在好多人都在用QT
回复

使用道具 举报

43

主题

1067

回帖

1201

积分

至尊会员

积分
1201
发表于 2025-8-19 17:32:31 | 显示全部楼层
陈清 发表于 2025-8-19 17:24
USB串口这种硬件交互使用起来如何?

这个跟C#有什么关系?USB串口自己提供驱动,对C#来说他仅仅是一个串口,标准接口访问。
回复

使用道具 举报

14

主题

117

回帖

159

积分

初级会员

积分
159
 楼主| 发表于 2025-8-19 17:42:46 | 显示全部楼层
ghslfgkkl88 发表于 2025-8-19 17:32
这个跟C#有什么关系?USB串口自己提供驱动,对C#来说他仅仅是一个串口,标准接口访问。

因为搜索的出的结论是QT对底层驱动和硬件交互很友好,串口网口这种都是做好的
回复

使用道具 举报

14

主题

117

回帖

159

积分

初级会员

积分
159
 楼主| 发表于 2025-8-19 17:46:09 | 显示全部楼层
ghslfgkkl88 发表于 2025-8-19 17:32
这个跟C#有什么关系?USB串口自己提供驱动,对C#来说他仅仅是一个串口,标准接口访问。

我表述有错误,因为目前C#开发环境标志性的软件是VS,结果说错了。但是我看说这种开发方式依赖于NET,在windows比较好,QT跨平台更强,然后是QT对底层的硬件包容性更好
回复

使用道具 举报

43

主题

1067

回帖

1201

积分

至尊会员

积分
1201
发表于 2025-8-19 17:54:33 | 显示全部楼层
陈清 发表于 2025-8-19 17:46
我表述有错误,因为目前C#开发环境标志性的软件是VS,结果说错了。但是我看说这种开发方式依赖于NET,在w ...

那不用问了,你一直在说服你自己选QT,那就选QT好了。
回复

使用道具 举报

7

主题

339

回帖

360

积分

高级会员

积分
360
发表于 2025-8-19 18:53:34 | 显示全部楼层
陈清 发表于 2025-8-19 16:02
佬,请问上下层分离是指什么?

写UI的人专注写UI,写逻辑的人只写逻辑,
回复

使用道具 举报

4

主题

421

回帖

433

积分

高级会员

积分
433
发表于 2025-8-20 00:44:56 | 显示全部楼层
陈清 发表于 2025-8-19 13:20
领导让我写个稍微好点的,以后可能也会写面向客户的。请问大佬提到的这个大概是什么样子的?

面向客户aardio不合适,太多人用aardio写外挂软件容易误报,总不能和客户解释吧。
aardio就像胶水ui自己拖放的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118308
QQ
发表于 2025-8-20 08:58:36 | 显示全部楼层
之前初学的时候,我有上位机选择困难症,看了很多人的讨论,最终emWin做了个PC上位机,自己用了,这种的做测试软件行,做面向产品的软件不行。
回复

使用道具 举报

14

主题

117

回帖

159

积分

初级会员

积分
159
 楼主| 发表于 2025-8-20 09:20:15 | 显示全部楼层
fxyc87 发表于 2025-8-19 18:53
写UI的人专注写UI,写逻辑的人只写逻辑,

原来如此,感谢佬
回复

使用道具 举报

14

主题

117

回帖

159

积分

初级会员

积分
159
 楼主| 发表于 2025-8-20 09:20:43 | 显示全部楼层
eric2013 发表于 2025-8-20 08:58
之前初学的时候,我有上位机选择困难症,看了很多人的讨论,最终emWin做了个PC上位机,自己用了,这种的做 ...

已经决定好好研究一下QT了毕竟可能需要面向客户展示了
回复

使用道具 举报

14

主题

117

回帖

159

积分

初级会员

积分
159
 楼主| 发表于 2025-8-20 09:21:10 | 显示全部楼层
cctv180 发表于 2025-8-20 00:44
面向客户aardio不合适,太多人用aardio写外挂软件容易误报,总不能和客户解释吧。
aardio就像胶水ui自己 ...

我了解了,感谢佬
回复

使用道具 举报

2

主题

41

回帖

47

积分

新手上路

积分
47
发表于 2025-8-20 09:53:28 | 显示全部楼层
eric2013 发表于 2025-8-20 08:58
之前初学的时候,我有上位机选择困难症,看了很多人的讨论,最终emWin做了个PC上位机,自己用了,这种的做 ...

哈哈哈哈我最开始在学校实验室的时候还看过matlab GUI设计的书
回复

使用道具 举报

356

主题

2187

回帖

3260

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3260
发表于 2025-8-20 14:52:35 | 显示全部楼层
cctv180 发表于 2025-8-20 00:44
面向客户aardio不合适,太多人用aardio写外挂软件容易误报,总不能和客户解释吧。
aardio就像胶水ui自己 ...

我使用QT写的软件,编译成exe后,总是被mcafee报成病毒。。。。微软的defender还好没怎么报。
为了使用方便,使用了“Enigma Virtual Box”打包成了独立的单个exe文件,不知道是不是这个原因。
回复

使用道具 举报

4

主题

421

回帖

433

积分

高级会员

积分
433
发表于 2025-8-20 17:31:56 | 显示全部楼层
caicaptain2 发表于 2025-8-20 14:52
我使用QT写的软件,编译成exe后,总是被mcafee报成病毒。。。。微软的defender还好没怎么报。
为了使用 ...

我菜得狠没用过qt呢,帮下上忙喽
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2025-8-21 09:05:03 | 显示全部楼层
之前用QT有分辨率问题,不同分辨率内容会错乱,这个处理有点麻烦
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2025-8-22 09:23:24 | 显示全部楼层
我来推荐一个好用易上手、商用免费、运行效率高、体积小、跨平台(win、mac、linux)、而且有超多控件的超强“小众”上位机开发软件:   Lazarus ,使用free pascal语言。
大名鼎鼎的 delphi 听过吧?Lazarus 就是它的完美复刻版,我超喜欢!
回复

使用道具 举报

3

主题

204

回帖

213

积分

高级会员

积分
213
发表于 2025-8-22 17:28:39 | 显示全部楼层
txf243 发表于 2025-8-22 09:23
我来推荐一个好用易上手、商用免费、运行效率高、体积小、跨平台(win、mac、linux)、而且有超多控件的超 ...

完全没听过,有空看看
Good Good Study, Day Day Up
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-9-26 09:03 , Processed in 0.067179 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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