Winform、Wpf、Qt的比较

1、winform不支持矢量图形,wpf支持矢量图形,可以利用Blend工具使用xaml语言绘制矢量图形,这就是所谓的大家常说的winform图形缩放会变成锯齿状而wpf不会。

2、winform是以事件模型驱动页面变化的,wpf支持以mvvm模式的数据驱动页面,前后端代码完全分离。

3、渲染机制的不同,winform在初始化时渲染一次界面,然后只能修改控件的属性等单个刷新界面控件,但是wpf因为mvvm的机制,在初始化时第一次渲染页面,后面每绑定的数据变动一次都会重新刷新整个页面的控件(可以根据wpf的视图树理解),虽然我们可以利用wpf的xaml语言和mvvm更加高效的开发炫酷自定义的控件,但是wpf是吃cpu的,所以我们经常会看到论坛有人说winform比wpf应用运行更加快流畅。winForm使用传统的经典GDI库渲染图形界面而wpf是DirectUI库,wpf的底层是DirectX支持独立显卡GPU加速适合开发酷炫复杂的界面。

4、Qt支持跨平台的界面库,利用qmake或者cmake编译工具打包发布成不同的运行平台应用程序(补充一下cmake项目一般都是用CMakeLists.txt来管理项目的,可以用VS打开CMakeLists.txt文件自动创建项目文件),Qt应用运行不需要运行时,而wpf和winform需要.netframework的CLR运行时提供支持,也就是说运行wpf和winform程序之前电脑需要安装对应版本的netframework,而Qt应用直接打开就可以运行了,因为Qt使用的C++语言可以直接编译成机器语言,只需要在安装的应用中引用指定版本的C++库即可。作下类比如下:

Qt Widgets  <——> Winform

Qt Quick  <——> Wpf

Qml(类似javascript)  <——> Xaml + mvvm     

//qml相当于一个高度集成的前端开发框架类似node.js这种    Qt Quick内部集成了google V8引擎作为qml的解释器,摒弃了html取而代之的是直接使用js作为UI的设计语言,qml的意思是Qt Markable Language。Qt Quick也提供了一系列js和C++交互的接口,便于js和C++通信。

详细参考:https://docs.microsoft.com/zh-cn/dotnet/desktop/wpf/overview/?view=netdesktop-6.0

posted on 2020-11-11 10:59  维尔维尔  阅读(13824)  评论(1编辑  收藏  举报

导航