diff options
author | Bradley T. Hughes <bradley.hughes@nokia.com> | 2009-06-18 10:58:29 (GMT) |
---|---|---|
committer | Bradley T. Hughes <bradley.hughes@nokia.com> | 2009-06-18 10:58:29 (GMT) |
commit | 7e8734879ea7619a632553b59b2a8bd491033cce (patch) | |
tree | 982f3a0ad66404afcffe0a06be31c1aa4caf3602 | |
parent | 3b04dba36b31360d94583f382b9054bcdea0e2a7 (diff) | |
download | Qt-7e8734879ea7619a632553b59b2a8bd491033cce.zip Qt-7e8734879ea7619a632553b59b2a8bd491033cce.tar.gz Qt-7e8734879ea7619a632553b59b2a8bd491033cce.tar.bz2 |
update examples now that we get both touch and mouse events at the same time
added a new example to show how to enable touch for an existing widget (QDial in this case), and that
the mouse event emulation of QWidget does the Right Thing (tm)
-rw-r--r-- | examples/multitouch/dials/dials.pro | 2 | ||||
-rw-r--r-- | examples/multitouch/dials/dials.ui | 77 | ||||
-rw-r--r-- | examples/multitouch/dials/main.cpp | 18 | ||||
-rw-r--r-- | examples/multitouch/multitouch.pro | 2 | ||||
-rw-r--r-- | examples/multitouch/pinchzoom/graphicsview.cpp | 8 |
5 files changed, 100 insertions, 7 deletions
diff --git a/examples/multitouch/dials/dials.pro b/examples/multitouch/dials/dials.pro new file mode 100644 index 0000000..e592232 --- /dev/null +++ b/examples/multitouch/dials/dials.pro @@ -0,0 +1,2 @@ +SOURCES += main.cpp +FORMS += dials.ui diff --git a/examples/multitouch/dials/dials.ui b/examples/multitouch/dials/dials.ui new file mode 100644 index 0000000..8ca7ae9 --- /dev/null +++ b/examples/multitouch/dials/dials.ui @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Dials</class> + <widget class="QWidget" name="Dials"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>400</width> + <height>300</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QDial" name="dial_1"> + <property name="notchesVisible"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QDial" name="dial_2"> + <property name="notchesVisible"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="QDial" name="dial_3"> + <property name="notchesVisible"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="3"> + <widget class="QDial" name="dial_4"> + <property name="notchesVisible"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QDial" name="dial_5"> + <property name="notchesVisible"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QDial" name="dial_6"> + <property name="notchesVisible"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="2"> + <widget class="QDial" name="dial_7"> + <property name="notchesVisible"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="3"> + <widget class="QDial" name="dial_8"> + <property name="notchesVisible"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> diff --git a/examples/multitouch/dials/main.cpp b/examples/multitouch/dials/main.cpp new file mode 100644 index 0000000..f4d3e83 --- /dev/null +++ b/examples/multitouch/dials/main.cpp @@ -0,0 +1,18 @@ +#include <QApplication> +#include <QWidget> +#include <QDial> + +#include "ui_dials.h" + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + QWidget window; + Ui::Dials dialsUi; + dialsUi.setupUi(&window); + QList<QAbstractSlider *> sliders = window.findChildren<QAbstractSlider *>(); + foreach (QAbstractSlider *slider, sliders) + slider->setAttribute(Qt::WA_AcceptTouchEvents); + window.showMaximized(); + return app.exec(); +} diff --git a/examples/multitouch/multitouch.pro b/examples/multitouch/multitouch.pro index b3d1d55..d5983eb 100644 --- a/examples/multitouch/multitouch.pro +++ b/examples/multitouch/multitouch.pro @@ -1,2 +1,2 @@ TEMPLATE = subdirs -SUBDIRS = pinchzoom fingerpaint knobs +SUBDIRS = pinchzoom fingerpaint knobs dials diff --git a/examples/multitouch/pinchzoom/graphicsview.cpp b/examples/multitouch/pinchzoom/graphicsview.cpp index b72da77..9d29a28 100644 --- a/examples/multitouch/pinchzoom/graphicsview.cpp +++ b/examples/multitouch/pinchzoom/graphicsview.cpp @@ -48,6 +48,7 @@ GraphicsView::GraphicsView(QGraphicsScene *scene, QWidget *parent) : QGraphicsView(scene, parent) { setAttribute(Qt::WA_AcceptTouchEvents); + setDragMode(ScrollHandDrag); } bool GraphicsView::event(QEvent *event) @@ -58,12 +59,7 @@ bool GraphicsView::event(QEvent *event) case QEvent::TouchEnd: { QList<QTouchEvent::TouchPoint> touchPoints = static_cast<QTouchEvent *>(event)->touchPoints(); - if (touchPoints.count() == 1) { - const QTouchEvent::TouchPoint &touchPoint = touchPoints.first(); - QPointF delta = touchPoint.pos() - touchPoint.lastPos(); - horizontalScrollBar()->setValue(horizontalScrollBar()->value() - delta.x()); - verticalScrollBar()->setValue(verticalScrollBar()->value() - delta.y()); - } else if (touchPoints.count() == 2) { + if (touchPoints.count() == 2) { // determine scale factor const QTouchEvent::TouchPoint &touchPoint0 = touchPoints.first(); const QTouchEvent::TouchPoint &touchPoint1 = touchPoints.last(); |