我正在尝试在我的小部件中启用滑动手势,但遗憾的是它无效。 我按照Qt。
提供的文档和示例进行了操作以下是我的代码的一部分:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
grabGesture(Qt::SwipeGesture);
}
bool MainWindow::event(QEvent *event){
if (event->type() == QEvent::Gesture)
return gestureEvent(static_cast<QGestureEvent*>(event));
return QWidget::event(event);
}
bool MainWindow::gestureEvent(QGestureEvent *event){
if (QGesture *swipe = event->gesture(Qt::SwipeGesture))
swipeTriggered(static_cast<QSwipeGesture *>(swipe));
return true;
}
void MainWindow::swipeTriggered(QSwipeGesture *gesture){
if (gesture->state() == Qt::GestureFinished){
if (gesture->verticalDirection() == QSwipeGesture::Up)
goButtomLabel();
if (gesture->verticalDirection() == QSwipeGesture::Down)
goUpperLabel();
update();
}
}
void MainWindow::goButtomLabel(){
// does something here
}
void MainWindow::goUpperLabel(){
// does something here
}
有什么不对吗?我忘了什么吗?
我是Qt的新手,也是C ++的初学者,所以我非常感谢你的帮助。
非常感谢你!