Qt 是否有“类似 XAML”的功能?基于标记的 GUI 创建?
WPF 使用 XAML。 Gtk 有 GladeXML 和相关工具。
Qt 是否存在类似的东西?
只是为了澄清:我问的是有关从标记文件运行时加载 UI 的问题。 XML/YAML/JSON等。
谢谢
WPF uses XAML. Gtk has GladeXML, and associated tooling.
Does something similar exist for Qt?
Just to clarify: I'm asking about runtime loading of a UI from a markup file. XML/YAML/JSON, etc.
Thank you
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
QML:http://doc.qt.nokia.com/4.7-snapshot/qdeclarativeintroduction .html
QML: http://doc.qt.nokia.com/4.7-snapshot/qdeclarativeintroduction.html
好吧....ui 文件是 .xml 文件
well... .ui files are .xml files
由 Qt 的 Designer 应用程序创建的 .ui 文件可以在运行时加载动态用户界面。它将允许更改 UI,但它不允许像 QML 那样提供状态信息。另外,如果您想对 UI 做很多事情,您需要了解有关 .ui 文件中小部件的一些信息。
The .ui files created by Qt's Designer application can be loaded at runtime for a dynamic UI. It will allow the UI to be changed, but it doesn't allow state information like QML does. Also, if you want to do much with the UI, you need to know some information about the widgets in the .ui file.
是的,有些 .ui 文件实际上是基于 XML 的。这些文件由 QtDesigner/QtCreator(诺基亚/Trolltech 提供的表单设计器)生成。
Ui 文件在编译时转换为 C++ 代码并与应用程序链接。
因此不可能在运行时加载它们。
Yes there are .ui files which are in fact XML based. These files are generated by QtDesigner/QtCreator (Form designer delivered by Nokia/Trolltech).
Ui files are converted to C++ code at compile time and linked with application.
So it is not possible to load them at runtime.
虽然 .ui 文件是 XML,但它们不像 Qt Quick(QtDeclarative Engine)的 .qml 文件那样具有声明性。相比之下,后者类似于 JSON,而不是 XML。所以最初问题的答案是:是(功能上)和否(不是 XML)。我个人认为基于XML的人类创造是较差的。
While .ui files are XML, these are not as declarative as the .qml files of Qt Quick (QtDeclarative Engine). The latter, in contrast is JSON-like, not XML. So the answer to the original question is: yes (functionally) and no (not XML). Personally, I think XML-based creation for humans is inferior.