代码之家  ›  专栏  ›  技术社区  ›  Ryou

QWidget和Qml在触摸屏处理方面有什么不同?

  •  2
  • Ryou  · 技术社区  · 7 年前

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

    它说,“Qt小部件通常需要 鼠标光标 用于良好的交互,而Qt Quick仅提供 基本构造块 设计时考虑了触摸交互。"

    那是什么意思?鼠标光标和基本构建块之间有什么不同?

    1 回复  |  直到 7 年前
        1
  •  5
  •   j123b567    7 年前

    基于Qt小部件的应用程序可以与触摸屏一起正常工作。我已经制作了许多用Qt小部件编写的触摸屏应用程序,它们工作得很好。

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

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

    enter image description here

    另一方面,QML首先是触摸屏。中有一些组件 Qt Quick Controls 但您可以使用矩形等基本构建块轻松定义自己的组件。有一些内置的设计师,但它从来没有适合我更复杂的设计。我曾经以QML的手动编码结束过。对我来说,QML更难学,最终的代码TED中充满了实现某些目标的技巧。这是我个人的观点。

    想象一下这个时间选择器使用QML。它只需要一些文本元素和矩形就可以实现( 仅使用基本构建块 ). 它也可以通过触摸屏完美使用。与使用QML相比,使用Qt小部件实现此组件要困难得多。

    enter image description here