显示方形光标
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();
}
如何在 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();
}