【发布时间】:2011-06-02 15:07:55
【问题描述】:
我想根据底层小部件的缩放级别(例如,RGBA = 200、200、200、128),将股票光标更改为半透明的、简单的实心圆、各种大小。
Qt 完全可以吗?如果不是,它是 Qt 还是底层库的限制?您是否对如何通过其他方式完成此操作有建议,例如隐藏光标并在光标位置覆盖透明像素图(尽管速度较慢)? TIA
【问题讨论】:
标签: qt transparency alpha mouse-cursor
我想根据底层小部件的缩放级别(例如,RGBA = 200、200、200、128),将股票光标更改为半透明的、简单的实心圆、各种大小。
Qt 完全可以吗?如果不是,它是 Qt 还是底层库的限制?您是否对如何通过其他方式完成此操作有建议,例如隐藏光标并在光标位置覆盖透明像素图(尽管速度较慢)? TIA
【问题讨论】:
标签: qt transparency alpha mouse-cursor
QCursor 可以采用支持 alpha 通道的 QPixmap。所以我不明白为什么它不能完成。
【讨论】:
我只是在我自己的项目中发现了这一点。我在相关小部件的构造函数中使用此代码完成了此操作:
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);
【讨论】: