pyqt5 悬浮窗口打开与关闭
时间: 2024-11-26 13:21:41 浏览: 15
PyQt5是一个用于Python的GUI应用程序开发工具,它结合了Qt库和Python语言。要创建一个悬浮窗(非最大化且可以随意移动的位置),你可以使用`QDialog`或者`QWidget`作为基础,并设置其`setWindowFlags()`属性使其成为浮动窗口。
以下是简单的步骤:
1. 导入必要的模块:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton
from PyQt5.QtCore import Qt
```
2. 创建一个窗口类并设置窗口属性:
```python
class FloatWindow(QWidget):
def __init__(self):
super(FloatWindow, self).__init__()
# 设置窗口为无边框、不可最大化、不可关闭,允许浮动
self.setWindowFlags(Qt.FramelessWindowHint | Qt.Tool | Qt.WindowStaysOnTopHint)
# 添加布局和按钮
layout = QVBoxLayout()
button = QPushButton("Close", self)
button.clicked.connect(self.close)
layout.addWidget(button)
self.setLayout(layout)
def closeEvent(self, event): # 重写close事件处理,以避免默认关闭
event.ignore() # 阻止窗口关闭
self.hide() # 只隐藏而不是关闭,以便再次显示
# 主函数
if __name__ == "__main__":
app = QApplication([])
window = FloatWindow()
window.show()
app.exec_()
```
在这个例子中,用户点击“Close”按钮时,窗口会隐藏而不是直接关闭,你可以通过调用`window.showNormal()`来恢复窗口到正常大小和位置。
阅读全文