- 主题:qt 算不算登峰造极的界面库了?
同样是绘制文字和方框,为什么 Qt 能比 MFC 快呢?
考虑到 MFC 的按钮默认连图标都没有就简单画个边框,必须是 MFC 更快啊。
Qt 只有在绘制复杂的控件树时或者绘制各种效果时才能展示出性能优势。
【 在 xieyf (绿蚁新醅酒,红泥小火炉) 的大作中提到: 】
: 这10年来, 还有比它更强大, 设计更优良的界面库吗?
: 但为什么他的速度似乎总比MFC慢一点呢? 按说从底层都是OpenGL了, 就剩下绘图代码, 怎么也得比mfc快啊.
--
FROM 47.243.39.*
imgui 更先进的地方在哪里呢?可以说说?
【 在 pcal (pc) 的大作中提到: 】
: 现在很火的imgui,从原理上讲比传统gui更先进
: qt胜在生态丰富,自己包罗的东西也更多
--
FROM 112.47.122.*
有了解的话,可以说说啊。
目前我见过的几种 GUI 库,感觉都各有特色:
Android/iOS
使用约束布局。这种布局方式非常容易编写。但开销相对较大。幸好一般移动端不会使用太过于复杂的布局。缺少 MVC 组件。不太容易扩展,编写代码也比较繁琐。
QtWidgets
使用静态盒型布局。容易理解。千禧年时代的 GUI 框架集大成者。
QtQuick
以 JavaScript 语言为基础的 QML 布局。是目前最先进的布局方式。非常容易做出动态的布局方式。不直接操作控件,与 Web 一样使用 MVC 控制。
duilib
容易做出换肤功能。相当于样式和布局分离了。
vue/angularjs
完全基于 MVC 的 GUI 框架。布局使用比较落伍的 flexbox. 使用 MVC,而不直接操作控件。比如一个块的显示与隐藏与变量 data.hasDetail 相关联,要隐藏详情块的时候,只要设置 data.hasDetail = false 就行了。
swt/swing/mfc/wxWidgets
都是上一代的 GUI 框架。典型的千禧年 GUI 框架。
【 在 pcal (pc) 的大作中提到: 】
: 我说错了。应该算一种比较特别的方式。
: 发自「今日水木 on Android」
--
FROM 112.47.122.*
除了没有事件循环,你说的要求上层负责渲染,听起来怎么像是 QtGui 干的事情啊。
【 在 pcal (pc) 的大作中提到: 】
: 其实我也不是很熟,以我的理解,qt,wx之类retained模式gui,需要在程序中保持widgets这么个实体,需要特定的数据绑定,需要规定写法的处理方法,比如回调或者槽,当然还有自有的事件循环。这在以gui为中心的程序中很好用。
: 即时模式gui不一样的地方在于,他没有自己的实时循环,需要依赖上层应用的实时循环,没有widgets,所有显示的"组件"实际上是一个实时的函数调用,这个函数负责渲染,显示,处理事件,也不存在数据交换,因为数据就是上层应用自己的数据,根据那个函数调用结果自己处理数
: 发自「今日水木 on Android」
: ...................
--
FROM 47.243.39.*