1. //头文件
    #pragma once
  2.  
  3. #include <QWidget>
  4. #include "ui_widgetFullAD.h"
  5.  
  6. class widgetFullAD : public QWidget
  7. {
  8. Q_OBJECT
  9.  
  10. public:
  11. widgetFullAD(QWidget *parent = Q_NULLPTR);
  12. ~widgetFullAD();
  13.  
  14. protected:
  15. virtual bool eventFilter(QObject *watched, QEvent *event);
  16. void paintEvent(QPaintEvent *event);
  17. virtual void mousePressEvent(QMouseEvent *event);
  18.  
  19. private:
  20. Ui::widgetFullAD ui;
  21. };
  1. #include "widgetFullAD.h"
  2. #include <qpainter.h>
  3. widgetFullAD::widgetFullAD(QWidget *parent)
  4. : QWidget(parent)
  5. {
  6. ui.setupUi(this);
  7. setAttribute(Qt::WA_TranslucentBackground, true);
  8. setWindowFlags(Qt::ToolTip | Qt::FramelessWindowHint);
  9. //ui.widget->installEventFilter(this);
  10. //installEventFilter(this);
  11. }
  12.  
  13. widgetFullAD::~widgetFullAD()
  14. {
  15. int xx = ;
  16. }
  17.  
  18. bool widgetFullAD::eventFilter(QObject * watched, QEvent * event)
  19. {
  20.  
  21. return QWidget::eventFilter(watched, event);
  22. }
  23.  
  24. void widgetFullAD::paintEvent(QPaintEvent * event)
  25. {
  26. QPainter painter(this);
  27. painter.fillRect(this->rect(), QColor(, , , )); //QColor最后一个参数80代表背景的透明度
  28. }
  29.  
  30. void widgetFullAD::mousePressEvent(QMouseEvent * event)
  31. {
  32. QRect rt = ui.widget->geometry();
  33. QPoint pt= this->mapFromGlobal(QCursor::pos());//将显示器坐标转换成窗口坐标
  34. if (ui.widget->geometry().contains(this->mapFromGlobal(QCursor::pos())))
  35. {
  36.  
  37. }
  38. else
  39. {
  40. hide();
  41. }
  42. }

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

Qt设置创建部分半透明,上面控件不透明的更多相关文章

  1. nim_duilib(14)之xml配置半透明窗体控件不透明

    before starting note 截至目前,我只能用xml写一些简单的布局和设置控件属性,循序渐进吧. 正在学习nim_duilib的xml的一些属性. xml配置半透明 GTAV中就有很多控 ...

  2. IOS 设置视图半透明子控件不透明

    代码处理: UIColor *color = [[UIColor blackColor] colorWithAlphaComponent:0.6]; self.view.backgroundColor ...

  3. Qt 创建一个QtDesinger第三方控件

    1.需要创建一个合适的.pro文件 2.创建一个继承QDesignerCustomWidgetInterface的类,描述控件的一些属性. 函数 描述和返回值 name() 指定控件的名称 group ...

  4. iOS 设置视图半透明而子控件不透明

    用一张半透明的图片做背景 使用colorWithWhite:alpha:方法  white后面的参数表示灰度,从0-1之间表示从黑到白的变化,alpha就是你想调整的透明度 bgView.backgr ...

  5. 在Qt中使用AnyCAD三维建模控件

    AnyCAD C++ SDK专为Qt框架增加了AnyPlatformQt.lib模块,在Qt中使用AnyCAD三维建模控件变得十分简单. 下载 Qt高速下载:http://pan.baidu.com/ ...

  6. winform 自定义控件:半透明Loading控件

    winform  自定义控件:半透明Loading控件 by wgscd date:2015-05-05 效果: using System;using System.Drawing;using Sys ...

  7. Qt编写自定义控件31-面板仪表盘控件

    一.前言 在Qt自定义控件中,仪表盘控件是数量最多的,写仪表盘都写到快要吐血,可能是因为各种工业控制领域用的比较多吧,而且仪表盘又是比较生动直观的,这次看到百度的echart中有这个控件,所以也来模仿 ...

  8. setOpaque(true);设置控件不透明

    setOpaque(true);设置控件不透明setOpaque(false);设置控件透明

  9. 【VS开发】使用MFC创建并调用ActiveX控件

    使用MFC创建并调用ActiveX控件 今天做了一下ActiveX的使用测试,总结一下: 首先使用MFC创建一个activeX的控件譬如ActiveXTest,编译成ocx并注册,然后另外编写一个测试 ...

随机推荐

  1. C# deep copy List

    https://stackoverflow.com/questions/14007405/how-create-a-new-deep-copy-clone-of-a-listt 1. copy lis ...

  2. 学习PYTHON之路, DAY 9 - Socket网络编程

    __import__ 两种方法,官方推荐下面的方法 Socket 参数介绍 sk.bind(address) 必会 s.bind(address) 将套接字绑定到地址.address地址的格式取决于地 ...

  3. 在Linux和Windows之间的远程控制的实现

    主要开发工作用Linux,邮件和文档等主要在Windows,两者之间经常需要传输数据,两台主机都必须同时运行着. 但是,通常来说,它们需要同时准备两套显示器.鼠标和键盘,既占地方又不够方便. 远程控制 ...

  4. vsftpd详细配置

    vsftpd配置文件详解 1.默认配置: 1>允许匿名用户和本地用户登陆. anonymous_enable=YES local_enable=YES 2>匿名用户使用的登陆名为ftp或a ...

  5. python数据可视化

    1.安装matplotlib 在 cmd 中键入 python -m pip install matplotlib,系统将自动安装,需要等一段时间,待完成后 python -m pip list ,显 ...

  6. Qt 滚动窗口类

    { QScrollArea *scrollArea = new QScrollArea(this); scrollArea->setFrameStyle(); scrollArea->se ...

  7. 对Java中properties类的理解

    转载于:https://www.cnblogs.com/bakari/p/3562244.html 一.Java Properties类 Java中有个比较重要的类Properties(Java.ut ...

  8. luogu1706全排列

    #include<bits/stdc++.h> using namespace std; +]; +]; int search(int k); int print(); int n,num ...

  9. dede后台登陆不了、出现index.htm Not Found!、无更新模板,解析不了

    以下2个选项内设为空.  

  10. Property Exercise

    要求一:自定义用户信息数据结构,写入文件,然后读出内容,利用eval重新获取数据结构 3 with open('user.db','w') as write_file:#创建并以写入的方式打开一个文件 ...