显示正方形光标

时间:2018-06-17 16:04:25

标签: qt hover cursor qwidget

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

换句话说,当我将鼠标悬停在QWidget上时,如何才能有一个特定长度的方格而不是光标?

1 个答案:

答案 0 :(得分:1)

您必须创建一个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();
}