QMenu 设置透明背景
时间: 2024-05-05 16:16:28 浏览: 159
activity设置背景透明
5星 · 资源好评率100%
要设置 QMenu 的透明背景,可以使用 QPalette 和 setAutoFillBackground() 函数。以下是一个简单的示例:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu
from PyQt5.QtGui import QPalette, QColor
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
menu = QMenu(self)
menu.addAction("Action 1")
menu.addAction("Action 2")
menu.addAction("Action 3")
# 设置透明背景
palette = QPalette()
palette.setColor(QPalette.Background, QColor(0, 0, 0, 0))
menu.setPalette(palette)
menu.setAutoFillBackground(True)
self.menuBar().setContextMenuPolicy(Qt.CustomContextMenu)
self.menuBar().setStyleSheet("background-color: #333;")
self.menuBar().customContextMenuRequested.connect(menu.exec_)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
在这个示例中,我们创建了一个 QMenu 对象,并将其添加到菜单栏的上下文菜单中。然后,我们使用 QPalette 来设置背景颜色为透明,并使用 setAutoFillBackground() 函数使背景颜色生效。最后,我们将菜单栏的背景颜色设置为黑色,并将菜单显示在自定义上下文菜单事件中。
阅读全文