如何检查Qt中的当前光标形状

Fre*_*Ben 1 c++ qt qt4 cursor qwidget

Fedora 17 x64上的Qt 4.8

在我QWidget::mouseMoveEvent,我试图检查光标当前是否设置为Qt::SizeVerCursorQt::SizeHorCursor,但QCursor通过调用返回QWidget::cursor()无法与任何一个Qt::SizeVerCursorQt::SizeHorCursor由于编译错误.看起来这是因为两者Qt::SizeVerCursor并且Qt::SizeHorCursor实际上是Qt::CursorShape代替QCursor.

此代码无法编译:

void MyGraphicsView::mouseMoveEvent( QMouseEvent *event )
{
    if( ( cursor() == Qt::SizeHorCursor ) || ( cursor() == Qt::SizeVerCursor ) )
    {
        qDebugGreen() << "Cursor is a size cursor!";
    }

    QGraphicsView::mouseMoveEvent( event );
}
Run Code Online (Sandbox Code Playgroud)

这是编译错误:

error: no match for ‘operator==’ in ‘QWidget::cursor() const() == (Qt::CursorShape)6u’

如何检查当前光标要么Qt::SizeVerCursor还是Qt::SizeHorCursor

Pet*_*ouš 5

Imho cursor().shape()应该可以工作.