Ryo*_*you 2 c++ qt touch-event qml qtquick2
我将在触摸屏上开发一个系统。我尝试使用 Qwidget。但是我在 QT 文档中找到了这个。
它说,“Qt Widgets 通常需要鼠标光标才能进行良好的交互,而 Qt Quick 只提供了设计时考虑到触摸交互的原始构建块。”
那是什么意思?鼠标光标和原始积木有什么区别?
基于 Qt Widgets 的应用程序可以在触摸屏上正常工作。我制作了许多用 Qt Widgets 编写的触摸屏应用程序,它们运行良好。
问题是,一些小部件太小,所以很难在触摸屏上使用它们,例如QSpinBox,QDateTimeEdit。一些小部件几乎QComboBox不可用,例如,如果下拉项目不适合屏幕,则无法正常工作。QScrollArea由于滚动条,使用它的所有组件都存在同样的问题。您仍然可以使用样式表来修改所有组件并使它们更适用于触摸屏。
想象一下这个使用 Qt Widgets 的对话框。也不可能用手指在电容式触摸屏上使用。它需要鼠标光标才能进行良好的交互。
另一方面,QML 首先是触摸屏。Qt Quick Controls 中有一些组件,但您可以使用 Rectangle 等原始构建块轻松定义自己的组件。有一些内置的设计器,但对于更复杂的设计,它从来没有对我有用过。我曾经以手动编码 QML 结束。对我来说,QML 更难学习,最终的代码 teds 充满了黑客来达到某个目标。这是我个人的看法。
想象一下这个使用 QML 的时间选择器。它可以仅由您自己实现一些文本元素和矩形(仅使用原始构建块)。它也可以通过触摸屏完美使用。使用 Qt Widgets 比使用 QML 实现这个组件要困难得多。