qt 觸摸事件

在構造函數中:setAttribute(Qt::WA_AcceptTouchEvents);

在類中

bool 類名::event(QEvent *event)
{
    
    switch( event->type() )
    {
    case QEvent::TouchBegin:
        {
            QTouchEvent* touch = static_cast<QTouchEvent*>(event);
            QList<QTouchEvent::TouchPoint> touch_list = touch->touchPoints();
           touch_list.at(0).pos().x();
            touch_list.at(0).pos().y();
            event->accept();
            return true;

        }

    case QEvent::TouchUpdate:
        {
            QTouchEvent* touch = static_cast<QTouchEvent*>(event);
            
            if(touch->touchPointStates() & Qt::TouchPointPressed){
                //判斷是否有觸摸點處於TouchPointPressed或TouchPointMoved或TouchPointStationary或TouchPointReleased
            }
            event->accept();
            return true;
        }
    case QEvent::TouchEnd:
        {    
            QTouchEvent* touch = static_cast<QTouchEvent*>(event);
            event->accept();
            return true;
        }
     

    return QWidget::event(event);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章