【Qt】QML-03: Пользовательские события мыши QQuickView

1. Краткое описание

QQuickView интегрирован из QQuickWindow, QQuickWindow интегрирован из QWindow, а QWindow интегрирован из QObject. Таким образом, события мыши QWindow можно отфильтровывать с помощью фильтрации событий QObject, а события мыши также можно настраивать.

2. Реализация кода

class LaoerQuickView : public QQuickView {
    
    
public:
    LaoerQuickView() {
    
    
    	# a)注册事件过滤
        installEventFilter(this);
    }
protected:
	bool eventFilter(QObject *target, QEvent *event)
	{
    
        
    	if (target == this ) 
    	{
    
            
        	if (event->type() == QEvent::KeyPress) 
        	{
    
                
        		QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);            
            	if (keyEvent->key() == Qt::Key_Space) 
            	{
    
                    
                	focusNextChild();                
                	return true;            
            	}        
        	}    
    	}    
    	return QQuickView::eventFilter(target, event);
	}
	
    void mousePressEvent(QMouseEvent* event)
    {
    
    
        // TODO event
        QQuickView::mousePressEvent(event);
    }

    void mouseMoveEvent(QMouseEvent* event)
    {
    
    
        // TODO event
        QQuickView::mouseMoveEvent(event);
    }

    void mouseReleaseEvent(QMouseEvent* event)
    {
    
    
        // TODO event
        QQuickView::mouseReleaseEvent(event);
    }
};

おすすめ

転載: blog.csdn.net/u010168781/article/details/132344641