Tap Gesture Example on Desktop: Difference between revisions
Jump to navigation
Jump to search
AutoSpider (talk | contribs) (Add "cleanup" tag) |
m (Wieland moved page TapGestureExampleOnDesktop to Tap Gesture Example on Desktop: Better title) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
Just yesterday a team mate asked me how to fake a gesture event on a desktop, say by clicking on a button, and I quickly wrote this example using Qt Designer form, a push button when clicked sends a tap gesture. Comments welcome :) | Just yesterday a team mate asked me how to fake a gesture event on a desktop, say by clicking on a button, and I quickly wrote this example using Qt Designer form, a push button when clicked sends a tap gesture. Comments welcome :) | ||
Line 29: | Line 27: | ||
void MainWindow::gest() | void MainWindow::gest() | ||
{ | { | ||
QTapGesture | QTapGesture *tapGes = new QTapGesture(this); | ||
tapGes->setPosition(QPointF(5,5)); | tapGes->setPosition(QPointF(5,5)); | ||
QList<QGesture | QList<QGesture*> tapGesTureList; | ||
tapGesTureList.append(tapGes); | tapGesTureList.append(tapGes); | ||
QGestureEvent event(tapGesTureList); | QGestureEvent event(tapGesTureList); | ||
QCoreApplication::sendEvent(this, & | QCoreApplication::sendEvent(this, &event); | ||
} | } | ||
Line 41: | Line 39: | ||
if (event->type() == QEvent::Gesture) | if (event->type() == QEvent::Gesture) | ||
{ | { | ||
QGestureEvent | QGestureEvent *gestevent = static_cast<QGestureEvent*>(event); | ||
if (QGesture *gest = gestevent->gesture(Qt::TapGesture)) | if (QGesture *gest = gestevent->gesture(Qt::TapGesture)) | ||
{ | { | ||
QTapGesture | QTapGesture *tapgest = static_cast<QTapGesture*>(gest); | ||
qDebug() << "tap gesture got at: " << tapgest->position(); | qDebug() << "tap gesture got at: " << tapgest->position(); | ||
} | } |
Latest revision as of 15:28, 24 March 2016
Just yesterday a team mate asked me how to fake a gesture event on a desktop, say by clicking on a button, and I quickly wrote this example using Qt Designer form, a push button when clicked sends a tap gesture. Comments welcome :)
PS. Just remember: Gesture objects are not constructed directly by developers. They are created by the QGestureRecognizer object that is registered with the application; see QGestureRecognizer::registerRecognizer().
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QTapGesture>
#include <QGestureEvent>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->pushButton, SIGNAL (clicked()), this, SLOT (gest()));
grabGesture(Qt::TapGesture);
}
MainWindow::~MainWindow()
{
ungrabGesture(Qt::TapGesture);
delete ui;
}
void MainWindow::gest()
{
QTapGesture *tapGes = new QTapGesture(this);
tapGes->setPosition(QPointF(5,5));
QList<QGesture*> tapGesTureList;
tapGesTureList.append(tapGes);
QGestureEvent event(tapGesTureList);
QCoreApplication::sendEvent(this, &event);
}
bool MainWindow::event(QEvent *event)
{
if (event->type() == QEvent::Gesture)
{
QGestureEvent *gestevent = static_cast<QGestureEvent*>(event);
if (QGesture *gest = gestevent->gesture(Qt::TapGesture))
{
QTapGesture *tapgest = static_cast<QTapGesture*>(gest);
qDebug() << "tap gesture got at: " << tapgest->position();
}
}
return true;
}