PyQt5全屏无边框透明窗口设置蓝色边框不显示如何解决
PyQt5无边框窗口蓝色边框不显示解决方案
你遇到的边框不显示问题由三个核心配置错误导致:
- 调用了
setWindowOpacity(0.01)将整个窗口(包括边框)的不透明度设为1%,肉眼几乎无法识别 - QMainWindow的顶层样式表默认不会直接生效,需要明确指定样式作用对象,否则边框配置会被内部默认的centralWidget覆盖
- 同时调用了
setGeometry和showFullScreen,后者会覆盖前者的尺寸配置,全屏状态下边框会紧贴屏幕边缘,也可能被误认为没显示
修改后可正常运行的代码
from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import Qt import sys class Window(QMainWindow): def __init__(self): super().__init__() # 隐藏标题栏 self.setWindowFlag(Qt.FramelessWindowHint) # 明确指定QMainWindow的边框样式,同时设置背景透明 self.setStyleSheet("QMainWindow {border : 3px solid blue; background: transparent;}") # 移除错误的极低全局不透明度配置 # self.setWindowOpacity(0.01) # 设置窗口尺寸 self.setGeometry(100, 100, 400, 300) # 不需要全屏可以注释下一行 # self.showFullScreen() # 创建PyQt5应用 App = QApplication(sys.argv) # 实例化窗口 window = Window() window.show() # 启动应用 sys.exit(App.exec())
关键修改说明
- 删掉了全局不透明度配置,如果需要窗口背景透明仅保留边框,通过样式表的
background: transparent实现即可,不要修改整个窗口的不透明度 - 样式表明确指定作用于
QMainWindow,避免样式被内部子控件覆盖 - 可根据需求选择是否保留
showFullScreen调用,注释后会显示400*300的带蓝色边框的窗口,更容易识别效果
内容的提问来源于stack exchange,提问作者Himanshu Poddar
相关产品推荐
相关产品推荐

