整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

为什么现在客户端都选择QT而放弃MF

为什么现在客户端都选择QT而放弃MF

现在大部分公司客户端的开发基本上都选用Qt,很多以前用mfc写的软件也慢慢的用Qt重构,那么选Qt的原因是什么?Qt相比mfc的优势又是什么呢?我认为有以下几个原因:

首先Qt跨平台,除了正常软件在多个平台下能运行外,漂亮国对我国围追堵截的今天,跨平台这个特性对我们很重要,要在多个平台下运行同一个软件,避免对我们的卡脖子;

其次QT做的GUI开发要比MFC要好,并且QT界面库支持CSS,界面设计更方便更美观,界面设计美工可以直接写;

面向对象的特性体现的比MFC明显,在命名,继承,类的组织等方面保持了优秀的一致性,代码写起来比较优雅;

还有就是个人感觉Qt上手比mfc要快很多,要是不太麻烦的功能,用Qt实现起来比较方便,对新手更友好,我觉得这也是选择Qt的一个很重要的原因,Qt现在功能越来越强大,做非GUI开发也挺好。再说了微软已经停止对mfc的更新了,这也是软件公司换到其他库的一个原因吧。

话说得好,MFC==没饭吃,不论你是否承认,都已经2021年了,在国内的大行情下,PC端软件开发整体处于没落阶段,上古界面库MFC早已经过时了,但是它并没有灭绝,在很多军工、自动化领域都随处可见MFC的身影。

如果新项目选型C++开发,这里推荐选择Qt库,而不是MFC(当然其他的类似Duilib等第三方库也可考虑,限于篇幅,这里不再介绍)。

Qt作为C++界面开发的首选界面库,它API设计优雅、跨平台支持、官方文档齐全,持续维护更新,对新手超级友好。新版本的QSS可以让我们像Web开发中的CSS那样绘制客户端软件样式。

但是,对于C++而言,做界面真的不是它的强项啊。C#、Electron难道都不够香吗?就连失传多年的Delphi开发起来我感觉也很赞啊。

那么初次接触C++界面开发, 要不要在MFC上花费太大功夫呢?下面谈谈自己的观点:

  • 如果你还是在校学生,建议你了解MFC的思想即可,不必去深究;C++的界面库,去学学QT,不是更香吗国产化当头,相信QT的市场会更加广阔
  • 如果你已经工作,并且很不幸,目前的开发以某一祖传代码为基础,且是MFC累积的,那么我只能建议你业余时间学习掌握下QT,随时准备跑路吧!

爱的BCGSoft用户,我们非常高兴地宣布BCGControlBar Professional for MFC和BCGSuite for MFCv25.1正式发布!我们为您提供开发桌面应用最简单、最有效的方法!接下来几篇文章将对这个版本的新功能一一进行介绍,让您对BCG这个控件有一个全新的认识和了解。需要最新版的可以点击这里【BCG下载】

WinUI Tiles control

1. 实现基于Visual Manager的颜色主题。SetVisualManagerTheme和IsVisualManagerTheme方法已添加到CBCGPWinUITiles类中。

2. WinUI Tile图像垂直对齐:将SetImageVertAlign和GetImageVertAlign方法添加到CBCGPWinUITile类中。

Grid control

1. 新的虚拟方法CBCGPGridItem :: ExportToHTML允许为自定义网格项和合并单元格的HTML导出。例如,您可以将嵌入的网格单元格图表保存为外部图片,并在HTML代码中添加对此文件的引用。

2. 新的虚拟CBCGPGridCtrl :: GetRowNumber允许自定义行编号。

3. 新方法CBCGPGridColumnsInfoEx :: AddHeaderItem返回一个指向头项的指针,允许自定义多行和合并头。

4. 扩展支持CBCGPEdit :: BrowseMode_PasswordPreview标记具有CBCGPEdit::BrowseMode_PasswordPreview flag的in-place编辑器。

Visual Manager

1. 以下新的虚拟方法添加到CBCGPVisualManager类:

  • OnDrawOutlookPopupButton呈现Outlook Bar 'popup'按钮。
  • GetChartColors:如果您想自定义图表控件外观,则覆盖此方法。
  • GetCircularGaugeColors:如果您想自定义圆形仪表外观,则覆盖此方法。
  • GetLinearGaugeColors:如果您想要自定义线性规格外观,则覆盖此方法。
  • GetWinUITilesColors:如果你想自定义WinUI tiles外观,重写这个方法。
  • BreadcrumbFillProgress:呈现breadcrumb控件背景进度。
  • IsRibbonCaptionTextCentered:告诉RibbonBox标题文本是否居中。
  • IsSimplifiedBackstageViewIcon:告诉Backstage View命令图标是否有简化的外观。

2. 改进Office 2013深灰色主题。

3. CBCGPVisualManagerScenic:滑块缩放按钮现在根据当前DPI缩放。

Controls

1. Slider控件:添加缩放按钮。启用缩放按钮并将HasZoomButtons方法添加到CBCGPGridCtrl。此外,我们向“缩放”滑块添加了缩放按钮,该滑块位于内置的Ribbon Backstage“Print”页面。

2. 实现在Shell控件中指定系统用户输入的功能:EnableSystemUserInput和IsSystemUserInputEnabled方法添加到CBCGPShellBreadcrumb,CBCGPShellList和CBCGPShellTree类中。系统用户输入的示例将是对话框,以请求密码或提示用户插入CD或软盘。

3. 在calendar的week days中新增自定多个字符的功能:SetMaxWeekDayCharacters和GetMaxWeekDayCharacters方法已添加到CBCGPCalendar和CBCGPDateTimeCtrl类中。

4. CBCGPEdit :: EnablePasswordPreview有一个新的可选参数'bAllowEditingInPreview'。

购买BCG正版授权的朋友可以点击"咨询在线客服"哦~~~