|
本帖最后由 xuyao 于 2013-6-24 18:26 编辑
如图,想在osg场景中显示Qt不规则窗体,但在XP环境下有锯齿现象,求大神指导
代码如下(构造函数,继承自QWidget):
MyButton::MyButton( const std::string& img, const std::string& mask, const int& width, const int& height, QWidget *parent /*= 0*/ )
: QWidget(parent) //参数有多余的,还未改
{
setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
_pixmap = QPixmap(QString::fromStdString(img));
setMask(QBitmap(_pixmap.mask()));
QPalette p;
p.setBrush(QPalette::Window, QBrush(_pixmap));
setPalette(p);
if (getWindowsSystemVersion() == 7)
{
//判断系统版本,win7则执行且显示很正常,若在XP下不执行这句时会出现锯齿现象,执行这句窗体无法正常显示
//鼠标不移到窗体位置窗体不显示,移到窗体位置点击会出现短暂的闪烁现象
setAttribute(Qt::WA_TranslucentBackground, true);
}
setAutoFillBackground(true);
}
困扰几个月了,谢谢!谢谢! |
-
Qt-OSG
|