显示方形光标

Show a square Cursor

如何在 QT 中为绘图应用程序的橡皮擦显示一个正方形而不是光标?

换句话说,当我将鼠标悬停在 QWidget 上时,我怎么会得到一个边长特定的正方形而不是光标?

您必须创建一个 QPixmap 来绘制创建 QCursor 的矩形,然后将其设置为您想要的小部件。

#include <QApplication>
#include <QGraphicsView>
#include <QHBoxLayout>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QPixmap pixmap(QSize(64, 64));
    pixmap.fill(Qt::transparent);

    QPainter painter(&pixmap);
    QRect r(QPoint(), pixmap.size());
    r.adjust(1, 1, -1, -1);
    painter.drawRect(r);
    painter.end();

    QCursor cursor(pixmap);

    QWidget w;
    QHBoxLayout lay(&w);

    QGraphicsView view1;
    view1.setCursor(cursor);

    QGraphicsView view2;

    lay.addWidget(&view1);
    lay.addWidget(&view2);
    w.show();

    return a.exec();
}