Qt 鼠标指针透明度

4
我希望使用一个半透明的简单填充圆来替换默认的光标,大小会根据底层小部件的缩放级别而有所不同(例如,RGBA = 200,200,200,128)。
请问Qt是否支持这种操作?如果不支持,是由于Qt本身还是由于底层库的限制?您是否有其他建议,例如隐藏光标并在光标位置上叠加透明的像素图(尽管速度较慢)?谢谢。
2个回答

2

我刚刚为自己的一个项目找到了解决方案。我在相关小部件的构造函数中使用了以下代码:

m_LPixmap = new QPixmap(32,32);
m_LPixmap->fill(Qt::transparent); // Otherwise you get a black background :(
QPainter painter(m_LPixmap);
QColor red(255,0,0,128);

painter.setPen(Qt::NoPen);        // Otherwise you get an thin black border
painter.setBrush(red);

painter.drawEllipse(0,0,32,32);
m_Cursor = QCursor(*m_LPixmap);
setCursor(m_Cursor);

1

QCursor可以接受支持透明通道的QPixmap。所以我不明白为什么不能做到。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接