QT设置透明窗体

1.边框透明窗体可以实现,但是Halcon图像无法显示,

//设不设效果一样
//setAutoFillBackground(false);  
//需要去掉标题栏
this->setWindowFlags(Qt::FramelessWindowHint);
this->setAttribute(Qt::WA_TranslucentBackground, true);
void BackGroundWidget::paintEvent(QPaintEvent * event)
{
    QPainter painter(this);
    painter.fillRect(this->rect(), QColor(0, 0, 0, 20));  //QColor最后一个参数80代表背景的透明度
}

2.这个方法,应该是透明的部分都是黑色填充

    setAutoFillBackground(false);  //这个设不设置都是黑色
    QPalette pal = palette();
    //pal.setColor(QPalette::Background, QColor(0x00, 0xff, 0x00, 0x00));
    pal.setColor(QPalette::Background, Qt::transparent);
    //pal.setColor (QPalette::Background, QColor (0, 0 , 0, 255));
    //pal.setColor (QPalette::Foreground, QColor (255,255,255,255));
    setPalette(pal);

3.这个方法压根没有填充效果,而且Halcon图像没有

setAutoFillBackground(false);  //这个不设置的话就背景变黑
    QPalette pal = palette();
    pal.setColor(QPalette::Background, Qt::transparent);
    setPalette(pal);
    //配合onpaint可以实现透明窗体,但是无法显示Halcon图像
    //setAutoFillBackground(false);  //这个不设置的话就背景变黑
    this->setWindowFlags(Qt::FramelessWindowHint);//需要去掉标题栏
    this->setAttribute(Qt::WA_TranslucentBackground, true);

4.这个方法窗体和子控件都会透明显示

//setWindowOpacity(0.1);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值