【8.Windows桌面应用程序--进制转换器图形化技术选择】

前言

上一篇文章大概把进制转换的思路梳理了一下,明确了数据在计算机中是以二进制存储的,实现了一定范围内的任意进制数据转换为二进制打印。

但是上一篇中出现了两个问题:

1. long double的打印出了问题,用Le格式控制符打印其最大最小值出现错误
2. 负数和浮点数打印二进制没有实现(虽然好像微软计算器也没有实现,而且应该没必要),但是我们还是应该了解一下负数和浮点数在计算机中是怎么存储的

不过本文的重心并不在这里,本文的重心是探讨怎么做出一个界面实现图形化功能,毕竟不能永远在vscode中打印数据,这样太麻烦了,而且不直观。目前打算实现基于windows的桌面应用,后面有需求再慢慢做成跨平台的

省流

那么总结来看,对我来说,我更希望快速就能上手,QT(C++)的方案学习路线比较陡峭,调试比较麻烦,开发效率低,但是长远来看跨平台和高性能是比较重要的。

对于我来说我希望尽快做出效果,因此可能会选择Electron。但是长期来看可以在学QT的过程中顺便温习一下C++,并且有一个完整的集成开发环境,还是可以学习的。

不过Electron的一个应用就要120Mb太大了,有点臃肿,后续我会慢慢使用Qt或者简单的第三方库如EasyX、GTK+来会实现图形化界面。目前为了方便上手还是使用Electron和Web了哈哈哈,发现跑题了

对于GTK+,可能要等我换个电脑装个Linux系统开发会比较舒服了,我电脑现在就只剩20多G了,使用GTK+的好处就是可以在各个系统中有一致的体验,而且是使用C语言开发的。

那么目前我还是使用Electron和JavaWeb技术来开桌面应用端,C语言实现桌面应用日后学习Qt的时候或者使用嵌入式开发板的时候再学习。

参考微软计算器

微软计算器好像是有个开源项目的,是使用C++写的,但是为了不受他们的思路影响,我们自己先研究一下。

我做这个项目的目的主要还是搭建一个体系,能够做一个直观的应用,后面慢慢地加功能,而不是一直用编辑器。

所以要研究一下他们的图形化界面是怎么做的

我的想法是早期微软应该就有系统应用计算器,那时候估计应该不是用QT这种框架开发的,经过一番搜索也确实如此。

微软开发桌面端应用主要使用C++、C#、C语言,他们在开发Windows应用程序时有一套自己的接口–Win32 API

那我们如果要按照微软的这一套开发生态的话,就要做到以下几点:

  • 学会如何使用Windows API 创建和管理窗口、对话框、控件
  • 理解事件驱动模型,涉及到消息循环和事件处理,这是Windows应用程序的核心
  • 多线程和并发
  • 熟悉框架和库如 MFC(Microsoft Foundation Classes)、Qt、WPF(Windows Presentation Foundation)、WinForms 等
  • 了解 Windows 操作系统的工作原理,包括进程、线程、内存管理等。
  • 熟悉 Microsoft 的官方文档和资源,如 MSDN(Microsoft Developer Network)。

虽说目前我是打算开发一个Windows桌面应用程序,但是我想让这个应用能够跨平台,而不是仅仅局限在Wndows系统,使用跨平台的框架和库有利于我们的长远发展,而且Windows的开发生态据搜集的资料显示不是很适合我。

选择开发框架和库

Windows桌面端(GUI)程序开发方案比较
首先说结论吧 我认为比较适合我的方案是Electron或者QT(C++)以及GTK+,具体原因参考上面的博客和自己的情况来详细说说。
在这里插入图片描述
对于我来说,首先就排除使用微软的技术
在这里插入图片描述
因为我很不喜欢学太多太杂的东西,之前学JavaWeb也是,一个东西还没搞懂又要用另一个框架,mvc、springboot、node、redis、ajax、vue,真的太多太多,可能对于我这种逻辑学习者来说,是比较难以接受这种一直跳跃式的学习的。还要加强能力。


接下来就是考虑使用QT(C/C++)、Electron还是GTK+了

在这里插入图片描述

先来看QT

优点

在这里插入图片描述

  • 封装的好,有集成开发环境,资料多全面
  • 可以很快做出好看的界面,QTDesigner
  • 跨平台 移动端都可以做

C 语言有什么方便的GUI开发框架

在这里插入图片描述

缺点

01-为什么要用Qt开发(Qt跨平台应用开发)
Qt 这么强大为什么火不起来

在这里插入图片描述

  • 开发效率低,调试麻烦
  • 学习路线陡峭
  • QT许可政策比较复杂,个人开发者和小企业的费用高昂。

适用领域

在这里插入图片描述

GTK+

C 语言有什么方便的GUI开发框架
GTK+ 与 Qt:跨平台 GUI 开发的艰难选择

特点

GTK+是用C语言编写的,但它通过使用语言绑定也支持其他编程语言如python、C++。GTK+的核心优势在于它的跨平台能力和广泛的社区支持。它支持Linux、Windows、macOS等主流操作系统,使得用C语言开发的GUI应用能够在多个平台上运行,而不需要更改底层代码。此外,GTK+背后有一个活跃的社区,为开发者提供数不尽的文档、教程和支持。

相较于Qt,GTK+:

  • 开源免费
  • 跨平台性更加出色 在Linux、macOS 和 Windows系统上提供一致的用户体验,而Qt不一定
  • GTK+ 拥有一个久经考验且庞大的生态系统,拥有丰富的文档、教程和示例。这使得开发人员可以轻松地找到所需的信息,从而加快开发过程。另一方面,Qt 的生态系统虽然也相当强大,但它不如 GTK+ 那么成熟。然而,Qt 社区非常活跃,并不断开发新的资源来支持开发人员。
  • GTK+ 的控件集被认为更加全面,为更广泛的用例提供了支持。Qt 的界面设计工具包更加现代化,提供直观的拖放式界面。这可以简化 UI 开发
  • 虽然 GTK+ 也支持面向对象编程,但它在灵活性方面不如 Qt。它主要依赖于 C 语言,这可能会限制某些开发人员。 Qt 以其灵活性而闻名,提供面向对象的设计,便于自定义和扩展。它还支持多种编程语言,包括 C++、Python 和 JavaScript

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值