我想创建一个半透明背景的全屏窗口,但是完全可见的子窗口小部件(覆盖效果的种类).

这是我到目前为止所拥有的:

import sys

from PyQt5.QtCore import *

from PyQt5.QtGui import *

from PyQt5.QtWidgets import *

app = QApplication(sys.argv)

# Create the main window

window = QMainWindow()

window.setWindowOpacity(0.3)

window.setAttribute(Qt.WA_NoSystemBackground, True)

window.setWindowFlags(Qt.FramelessWindowHint)

# Create the button

pushButton = QPushButton(window)

pushButton.setGeometry(QRect(240, 190, 90, 31))

pushButton.setText("Finished")

pushButton.clicked.connect(app.quit)

# Center the button

qr = pushButton.frameGeometry()

cp = QDesktopWidget().availableGeometry().center()

qr.moveCenter(cp)

pushButton.move(qr.topLeft())

# Run the application

window.showFullScreen()

sys.exit(app.exec_())

这会产生半透明效果,但即使按钮也是半透明的.

我也试过替换了

window.setWindowOpacity(0.3)

通过这个电话

window.setAttribute(Qt.WA_TranslucentBackground, True)

但无济于事,在这种情况下,背景是完全透明的(按钮正确完全可见).

解决方案:(感谢Aaron的建议):

诀窍在于为主窗口实现自定义paintEvent.

import sys

from PyQt5.QtCore import *

from PyQt5.QtGui import *

from PyQt5.QtWidgets import *

class CustomWindow(QMainWindow):

def paintEvent(self, event=None):

painter = QPainter(self)

painter.setOpacity(0.7)

painter.setBrush(Qt.white)

painter.setPen(QPen(Qt.white))

painter.drawRect(self.rect())

app = QApplication(sys.argv)

# Create the main window

window = CustomWindow()

window.setWindowFlags(Qt.FramelessWindowHint)

window.setAttribute(Qt.WA_NoSystemBackground, True)

window.setAttribute(Qt.WA_TranslucentBackground, True)

# Create the button

pushButton = QPushButton(window)

pushButton.setGeometry(QRect(240, 190, 90, 31))

pushButton.setText("Finished")

pushButton.clicked.connect(app.quit)

# Center the button

qr = pushButton.frameGeometry()

cp = QDesktopWidget().availableGeometry().center()

qr.moveCenter(cp)

pushButton.move(qr.topLeft())

# Run the application

window.showFullScreen()

sys.exit(app.exec_())

python创建透明窗体_python – PyQt5:使用不透明的子项创建半透明窗口相关推荐

  1. python画卡通人物_python pyqt5 卡通人物形状窗体

    -- coding: utf-8 -- """ [简介] 不规则的,可以拖动的窗体实现例子 """ import sys from PyQt ...

  2. python qt designer 重定向_Python+PyQt5+QtDesigner+PyUic+PyRcc环境安装与配置

    Python+PyQt5+QtDesigner+PyUic+PyRcc环境安装与配置 Python+PyQt5+QtDesigner+PyUic+PyRcc环境安装与配置 Python+PyQt5+Q ...

  3. python自己创建模块路径_python之本地模块/包使用和创建

    image.png 模块 模块实质上就是一个python文件. 它是用来组织代码的,文件名其实就是模块名. 例如hello.py hello就是模块的名称. 包 包(package),本质来说就是一个 ...

  4. python 做界面时如何使图片保持透明背景_Python matplotlib生成图片背景透明的示例代码...

    使用matplotlib生成图片,想要背景透明,而且图例部分也显示透明效果,找到了大概的设置方法,特此记录. # coding=utf-8 # matplotlib背景透明示例图 # python 3 ...

  5. python 做界面时如何使图片保持透明背景_Python matplotlib生成图片背景透明

    使用matplotlib生成图片,想要背景透明,而且图例部分也显示透明效果,找到了大概的设置方法,特此记录. # coding=utf-8 # matplotlib背景透明示例图 # python 3 ...

  6. python 修改文件创建时间_python 两种方法修改文件的创建时间、修改时间、访问时间...

    突如其来想知道一下 python 如何修改文件的属性(创建.修改.访问时间),于是就去网上搜集了可行方案,也就有了这篇博客 方案一 from win32file import CreateFile, ...

  7. python蜡烛图预测_Python数据可视化:如何用mplfinance创建蜡烛图

    一图胜千言,使用Python的matplotlib库,可以快速创建高质量的图形. 我们团队推出一个新的系列教程:Python数据可视化,针对初级和中级用户,将理论和示例代码相结合,使用matplotl ...

  8. python创建匿名函数_Python练习实例48 | 使用lambda来创建匿名函数。

    关于lambda函数,在Python当中属于匿名函数,顾名思义,就是函数严格上来说只是定义了一个算法,并没有具体的名称. 小黄人.jpg 关于究竟什么是lambda函数,作者这里在这里也不做过多的讲解 ...

  9. python自动切换链接_python+selenium自动化(四)之selenium切换窗口

    当我们点击某个链接时,切换换到另一个窗口,这时就需要跟随切换到新打开的页面,去定位元素. 1.获取当前页面句柄  current_window_handle importtimefrom seleni ...

最新文章

  1. linux下的软硬资源限制,关于ulimit命令修改软硬资源大小说明及正确修改软硬资源限制数配置...
  2. Ubuntu18.04安装Intel® oneAPI Toolkit
  3. vue 高德地图多边形_Vue + 高德地图画矢量图
  4. JAVA——Windows双击jar包为可执行操作
  5. 使用Elasticsearch 构建 .NET 企业级搜索
  6. OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize()
  7. 2019技术学习规划
  8. 欧姆字符的编码c语言,《编码:隐匿在计算机软硬件背后的语言》读书笔记
  9. Spring整合Redis作为缓存
  10. 数据科学包14-matplotlib-6种图形的基本画法
  11. L1-005 考试座位号 (15 分)—团体程序设计天梯赛
  12. 前端加密使用AES与后端配合(ECB)
  13. python做一个浏览器_用python做一个简单的浏览器
  14. 在开放环境的步态识别:一个基准(三)
  15. 知识图谱—知识存储—仅用neo4j搭建简单的金融知识图谱
  16. 统计检测(statistical tests)
  17. 「冰狐智能辅助」如何在线实时调试?
  18. java生成tga图片_游戏制作行业为什么使用TGA格式的贴图而不使用PNG格式?
  19. 全国青少年信息学奥林匹克竞赛到底是什么?
  20. Android免费离线文字转语言+讯飞语记

热门文章

  1. C++中的内联函数和C中的宏定义的区别
  2. 二叉查找树及其C语言实现
  3. json-lib 的maven dependency
  4. 资源位图android4.2中为什么要高效的处理位图资源
  5. jQuery框架总体分析
  6. Windows2008 可用的通用蓝牙驱动程序
  7. 女孩!自重!上海出租车司机的话
  8. 对于引用的控件被拒绝访问的解决办法的补充(续)
  9. java entry迭代,如何迭代Entry / BarEntry ArrayList并修改它们的值MPAndroid Chart
  10. netbeans 添加gif图片_告别PC 用手机完成各种GIF动画编辑