QT 小部件与 QT GUI
Posted
技术标签:
【中文标题】QT 小部件与 QT GUI【英文标题】:QT widgets vs QT GUI 【发布时间】:2012-05-07 09:41:41 【问题描述】:我是 QT 的新手,实际上我还没有开始,但我打算从 QT 用户界面创建一个 xml 文件(标记和节点以及所有内容......)。
例如,用户可以在我的界面文本字段中找到他可以插入员工姓名、id 和年龄的位置,我的程序会将其转换为我的输出 xml 文件中的员工节点,其属性为 name、id、age。因此,由于我使用 c++ 进行编码,因此我想将此界面创建为 QT GUI,但我发现 QT creator 提供了一个名为 QT Widget 的项目,具有相同的选项。
所以我现在有点困惑,我不知道它们之间有什么区别,所以我可以选择。 我会感谢大家的帮助。
【问题讨论】:
【参考方案1】:如果我正确理解了您的问题:Qt 小部件是一个很小的元素,是 gui 中的众多项目之一(按钮、组合框都是小部件)。 Qt Widget,项目类型用于创建一个,您可以在单独的项目界面中使用它。
Qt Gui 更可能是您想要的项目类型,它允许您拖入许多小部件来创建您的“界面文本字段”。
如果您需要进行更高级的自定义或创建自己的文本字段控件,您可以使用 Qt Widget 项目类型。
【讨论】:
我不认为这就是他们的意思。在 Qt Creator 的“创建项目”对话框中,有一个名为 Qt Widget Project 的类别,其中有“Qt Gui Application”和“Mobile Qt Application”作为选项。另一个类别是我猜他们正在询问的“Qt Quick Project”。如果你想要一个基于 QWidget 的项目,你可以在 Qt GUI 应用程序向导中选择它作为基类,但我认为他们甚至没有那么远...... 谢谢,我想我会选择一个小部件项目 - “Qt Gui Application”,因为它听起来比使用 QML 编码更简单,并且产生的错误更少!【参考方案2】:你是指 Qt Quick 与 Qt Widgets 的区别吗?
Qt Quick 是一种较新的 Qt GUI 类型,它由称为 QML 的声明性标记语言创建。 QML 源代码在运行时被解释,而 Qt Widgets 则从 C++ 源代码编译为本机可执行代码。除了 QML,Qt Quick 还使用内联 javascript 编写 UI 脚本,但它可以(并且通常是)与 C++ 接口以进行更复杂的处理。
编辑:Qt Quick 也非常面向触摸(至少在当前状态下),而 Qt Widget GUI 提供了更丰富的 UI 元素集。因此,如果您正在制作桌面应用程序,您可能希望不考虑 Qt Quick。
【讨论】:
所以 QML 类似于 DotNET 中的 XAML 语言,我可以使用它来将数据与我的输入组件绑定,所以对于初学者,真的建议从 QML 开始吗? 在某种程度上是相似的。但 QML 比 XAML 更受限制。 XAML 实际上可能更接近 Qt 的 .ui 文件。它们是用于存储在 Qt Designer 中创建的表单的 XML 文件,通常不直接手动操作。 Qt Creator 甚至不允许您在 Qt Designer 中编辑 .ui 文件。 在这里查看 QML 组件列表:doc.qt.nokia.com/4.7-snapshot/qdeclarativeelements.html 如果您认为这些组件适合您的需求,请务必使用它。例如,您始终可以在使用 Qt Designer 制作的 GUI 中嵌入 QML 元素。举一个具体的例子,Qt 中没有直接的“按钮”元素。相反,您只需将一些图形元素(例如 Rectangle 或 Image)与 MouseArea 结合使用,并使其表现得像一个按钮。以上是关于QT 小部件与 QT GUI的主要内容,如果未能解决你的问题,请参考以下文章