![]() |
1
13
(更新) 对xaml的误解是它没有编译。它实际上被编译为baml一个二进制的预标记xaml。显然有一个编译过的xaml版本也叫做caml。手术医生指给我看的 good article 解释什么是xaml/baml和caml。 不管怎样,对于为什么要使用它的问题: xaml只是c对象的序列化格式,它特别适合描述分层对象结构,如wpf gui中的那样。 wpf帮你做的是写一些不那么枯燥的c代码,比如:
用一种更易懂的方式来表达:
由于wpf对象嵌套(将东西放在其他对象中)可以变得非常深入,因此wpf比生成的c代码更易于阅读。 至于关注点的分离:xaml也有帮助,因为它只允许您表达对象及其关系/属性,而不是逻辑。这迫使您将逻辑与ui布局分离。mvvm模式非常适合这个任务,并且允许eay可测试性和可互换视图。 在xaml中增加的复杂性也很容易被忽略,因为c中相同的代码比xaml标记更容易变得复杂。 但我不能给你任何关于qtquick的信息。对不起的 |
![]() |
2
8
QtQuick是可扩展的,通过C++插件,实际上QT家伙重新评论的是,你在QtQueQ/QML中做UI、动画、转换等,而你的所有业务逻辑都是在C++/QT中。这样,你可以从两个世界中得到最好的结果,你可以像通常一样调试你的C++代码,同时让UIS变得不费吹灰之力,非常容易。 另外,qtquick/xaml的另一个重要思想是它们是硬件加速的,因此例如,您可以不费吹灰之力就获得非常好的fps。所以他们一点也不迟钝。 它节省时间,所以很多时间。我用3天的时间做了一个带代码的ui,用2小时的时间在qml中做了同样的事情。 |
![]() |
3
7
声明式编码(即wpf或qtquick)的目的是在开发人员和实现应用程序视觉方面的艺术家之间提供一个分隔。关于wpf,我发现调试变得有点困难。在我们发言时,我正在编译最新的qt以查看qtquick。(这需要很长时间,我有时间看看stackoverflow:—))所以,我还没有对此发表意见。 |
![]() |
4
6
qml/xaml是:
但是请注意在xaml中:(我是一个xaml程序员,因此我没有qml的点)
|
![]() |
DELI · 如何在QML中修改TableView数据? 2 年前 |
![]() |
joshp · Pysides6列从设置向后跨距 2 年前 |
![]() |
MingMing · C++在MaCOS 11上显示权限对话框 2 年前 |
![]() |
K.Mulier · PyQt5:如何将QObject移动到主线程? 6 年前 |