簡體   English   中英

我的QGraphicsView的光標不會改變

[英]Cursor won't change for my QGraphicsView

我已經基於QGraphicsView創建了自己的小部件。 我這樣做是為了重新實現一些鼠標事件,例如:

void Workspace::mouseMoveEvent(QMouseEvent *event)
{
    qDebug() << (QString("Mouse move (%1,%2)").arg(event->x()).arg(event->y()));

    QGraphicsView::mouseMoveEvent(event); 
}

以及安裝事件過濾器

bool Workspace::eventFilter(QObject* obj, QEvent* e)
{
    if(e->type() == QEvent::Enter)
        qDebug() << "Entered Workspace";
}

我不喜歡默認的“手”鼠標指針,因此決定使用

this->setCursor(Qt::CrossCursor);

在我的構造函數中。

但是,發生的情況是鼠標指針僅在小部件的第一個像素處才變成十字形。 當我進一步移動時,它會返回到默認的“手”光標,該光標用於表示拖動功能。

為什么會發生這種情況,如何將光標更改為自己喜歡的位置?

似乎使用

QApplication::setOverrideCursor(Qt::CrossCursor);

輸入小部件時,以及

QApplication::restoreOverrideCursor();

退出時,把戲。

我不確定為什么setCursor無法正常工作。

編輯

實際上使用上面的方法不是一個好主意,因為使用起來更簡單

QApplication::changeOverrideCursor(*mCurrentCursor);

這樣您就不必擔心其他任何事情,Qt會處理堆棧入隊/出隊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM