查看: 1427|回复: 2

再问XP环境下Qt透明窗体无法在osg场景中正常显示

[复制链接]

该用户从未签到

发表于 2013-6-24 18:20:07 | 显示全部楼层 |阅读模式
本帖最后由 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

Qt-OSG

该用户从未签到

发表于 2013-6-24 18:28:28 | 显示全部楼层
如果是Qt的话,其实您完全可以参考osgQtWidgets把UI界面放在3D场景中,这早已不是什么新鲜事了

该用户从未签到

 楼主| 发表于 2013-6-25 09:40:28 | 显示全部楼层
array 发表于 2013-6-24 18:28
如果是Qt的话,其实您完全可以参考osgQtWidgets把UI界面放在3D场景中,这早已不是什么新鲜事了

我的界面确实放在3D场景中的,只是在xP环境下Qt窗体只要一设透明度就不能正常显示而在Win7环境下却可以正常显示
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表