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

时间:2018-02-28 08:20:42

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

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

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

这是什么意思?鼠标光标和原始构建块之间有什么不同?

1 个答案:

答案 0 :(得分:2)

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

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

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

enter image description here

另一方面,QML首先是触摸屏。 Qt Quick Controls中有一些组件,但您可以轻松地使用像Rectangle这样的原始构建块来定义自己的组件。有一些内置的设计师,但它从来没有适用于更复杂的设计。我用QML的手动编码结束了。对我来说,QML更难以学习,而最终的代码却充满了实现目标的黑客攻击。这是我个人的观点。

想象一下这个使用QML的时间选择器。它可以只用你自己的一些文本元素和矩形来实现(只使用原始构建块)。它也可以通过触摸屏完美使用。使用Qt Widgets然后使用QML将更难实现此组件。

enter image description here

相关问题