【问题标题】:What's the different between QWidget and Qml in the processing of touch screen?QWidget和Qml在触摸屏的处理上有什么不同?
【发布时间】:2018-02-28 08:20:42
【问题描述】:

我打算在触摸屏上开发一个系统。我尝试使用 Qwidget。但我在 QT 文档中发现了这一点。

它说,“Qt Widgets 通常需要 鼠标光标 才能实现良好的交互,而 Qt Quick 只提供在设计时考虑到触摸交互的原始构建块。”

这是什么意思?鼠标光标和原始积木有什么区别?

【问题讨论】:

  • QtQuick 元素,如:ButtonRectangle 是使用高度动画化的 qml(标记 JSON 语法)块 { } .. 创建的

标签: c++ qt qml qtquick2 touch-event


【解决方案1】:

基于 Qt Widgets 的应用程序可以在触摸屏上正常工作。我已经制作了许多用 Qt Widgets 编写的触摸屏应用程序,它们运行良好。

问题是,有些小部件太小了,很难在触摸屏上使用它们,例如QSpinBoxQDateTimeEdit。 有些小部件几乎不可用,例如如果下拉项目不适合屏幕,QComboBox 将无法正常工作。由于滚动条,QScrollArea 和所有使用它的组件也存在同样的问题。 您仍然可以使用Style sheets 修改所有组件,使其更适用于触摸屏。

想象一下这个使用 Qt Widgets 的对话框。也不可能用手指在电容式触摸屏上使用。 它需要鼠标光标才能进行良好的交互。

另一方面,QML 首先是触摸屏。 Qt Quick Controls 中有一些组件,但您可以使用 Rectangle 等原始构建块轻松定义自己的组件。有一些内置的设计器,但对于更复杂的设计,它从未对我正常工作。我曾经以手动编码 QML 结束。对我来说,QML 更难学习,最终的代码充满了 hack 来达到某个目标。这是我个人的看法。

想象一下这个使用 QML 的时间选择器。它可以只实现一些文本元素和您自己的矩形(仅使用原始构建块)。它也完全可以通过触摸屏使用。使用 Qt Widgets 比使用 QML 实现这个组件要困难得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 2011-02-18
    • 1970-01-01
    相关资源
    最近更新 更多