Qt鼠标光标透明度

时间:2011-06-02 15:07:56

标签: qt cursor mouse transparency alpha

我想根据底层小部件中的缩放级别(例如,RGBA = 200,200,200,128),用半透明的光标,一个简单的填充圆形,更改光标光标。 / p>

Qt可以实现这一切吗?如果没有,它是Qt或底层库的限制吗?您是否有关于如何通过其他方式完成此操作的建议,例如,隐藏光标并在光标位置覆盖透明像素图(尽管速度较慢)? TIA

2 个答案:

答案 0 :(得分:1)

QCursor可以采用支持alpha通道的QPixmap。所以我不明白为什么不能这样做。

答案 1 :(得分:1)

我只是想出了一个属于我自己的项目。我在相关小部件的构造函数中使用此代码完成了它:

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);
相关问题