Qt设置创建部分半透明,上面控件不透明

摘要:
widgetFullAD(QWidget*parent=Q_NULLPTR);protected:private:Ui:qpainter.h>QWidget(父项){ui.setupUi(this):event):painter.fillRect(this->mousePressEvent(QMouseEvent*event){QRect=ui.widget-&gt:
//头文件
#pragma
once #include <QWidget> #include "ui_widgetFullAD.h" class widgetFullAD : public QWidget { Q_OBJECT public: widgetFullAD(QWidget *parent = Q_NULLPTR); ~widgetFullAD(); protected: virtual bool eventFilter(QObject *watched, QEvent *event); void paintEvent(QPaintEvent *event); virtual void mousePressEvent(QMouseEvent *event); private: Ui::widgetFullAD ui; };
#include "widgetFullAD.h"
#include <qpainter.h>
widgetFullAD::widgetFullAD(QWidget *parent)
    : QWidget(parent)
{
    ui.setupUi(this);
    setAttribute(Qt::WA_TranslucentBackground, true);
    setWindowFlags(Qt::ToolTip | Qt::FramelessWindowHint);
    //ui.widget->installEventFilter(this);
    //installEventFilter(this);
}

widgetFullAD::~widgetFullAD()
{
    int xx = 343;
}

bool widgetFullAD::eventFilter(QObject * watched, QEvent * event)
{

    return QWidget::eventFilter(watched, event);
}

void widgetFullAD::paintEvent(QPaintEvent * event)
{
    QPainter painter(this);
    painter.fillRect(this->rect(), QColor(0, 0, 0, 150));  //QColor最后一个参数80代表背景的透明度
}

void widgetFullAD::mousePressEvent(QMouseEvent * event)
{
    QRect rt = ui.widget->geometry();
    QPoint pt= this->mapFromGlobal(QCursor::pos());//将显示器坐标转换成窗口坐标
    if (ui.widget->geometry().contains(this->mapFromGlobal(QCursor::pos())))
    {

    }
    else
    {
        hide();
    }
}

今天遇到一种情况,设置Qt窗口半透明的时候,会把其他的控件全部边半透明了,还有一种情况是透明部分鼠标点击不了。所以找了一个最简单的处理,既然不影响鼠标点击事件,也就可以把背景变成半透明。

Qt设置创建部分半透明,上面控件不透明第1张

免责声明:文章转载自《Qt设置创建部分半透明,上面控件不透明》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇kafka的分区分配策略ES之八:ES数据库重建索引——Reindex(数据迁移)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法

原文:http://czjxdm.iteye.com/blog/466948 Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法 博客分类:技术文章 OracleSQL  怎么合并多行记录的字符串,一直是oracle新手喜欢问的SQL问题之一,关于这个问题的帖子我看过不下30个了,现在就对这个问题,进行一个总结。    什么是合并多...

Maven的assembly插件实现自定义打包部署(包含依赖jar包)

微服务必备 优点:   1、可以直接导入依赖jar包   2、可以添加插件启动 .sh 文件   3、插件的配置以及微服务的统一打包方式 1.首先我们需要在pom.xml中配置maven的assembly插件 <build> <plugins> <plugin>...

利用span设置文字固定宽度

<input type="radio" name="dispMode" value="manul"/><label for="rdoManul"><span class="modeText">手动下载</span></label> <input type=...

SuperSlide——再次接触

原来自己很早之前就接触过SuperSlider这个神奇的插件,原谅自己又得了“健忘症”,因此昨天就把自己“坑”了一把: 前言: 交易一期的项目即将上线,在解决测试同事们提出的bug的时候,无意间看到页面有一个神奇的现象: 看着这左右不停变换的图片,心里是不是有点高兴:这样的效果还真不错!可是头疼的却在后面…… 当企业资质下只有一张图片时,它就变成了两张...

PHP异步扩展Swoole笔记(1)

安装Swoole扩展 通过pecl安装, 系统中最好已经有http2依赖, 如果是Ubuntu, 可以直接通过apt安装nghttp2, 如果是Centos或者需要自己编译, 在Github下载nghttp2 https://github.com/tatsuhiro-t/nghttp2 后编译安装) 运行pecl需要autoconf, 如果没有会报错 Ca...

Qt中的打印操作

Qt中对打印的支持是有一个独立的printsupport模块来完成的,所以,要想在程序中使用Qt的打印功能,必须先在pro文件中添加下面这句代码: QT += printsupport在这个模块中,提供了八个类来支持打印功能。我们来简单的看几个与打印有直接关系的几个类:QPageSetupDialog:该类可以用来对打印页面进行一些相关的配置,如页面方向,...