我已經基於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);
在我的構造函數。
雖然鼠標指針僅在小部件的第一個像素處變成十字,但會發生什麼情況。當我進一步移動時,它會回到用於表示拖動功能的默認「手形」光標。
爲什麼會發生這種情況,如何將光標更改爲我喜歡的任何內容?
「Workspace」的大小是多少? – 2015-04-02 13:23:10
這取決於窗口大小,從260x260開始。我確實發現了'QApplication :: setOverrideCursor(Qt :: CrossCursor)';'但我不知道它是否是最好的解決方案,但它確實按照它應該做的。 – dearn44 2015-04-02 13:30:07