PYQT5 通过动态加载UI的方式,如何实现窗口无边框且能够移动?
时间: 2024-10-11 19:14:04 浏览: 42
在PyQt5中,如果你想要创建一个无边框且可以自由移动的窗口,你可以使用`QMainWindow`类,并结合`setWindowFlags()`函数和`setWindowOpacity()`函数来实现。以下是步骤:
1. 首先,导入所需的模块:
```python
from PyQt5.QtWidgets import QMainWindow, QApplication
from PyQt5.QtCore import Qt
```
2. 创建一个自定义的窗口类,继承自`QMainWindow`:
```python
class CustomWindow(QMainWindow):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
# 设置窗口的基本属性,如无边框、透明度以及图标等
self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint) # 无边框
self.setAttribute(Qt.WA_TranslucentBackground) # 窗口半透明
```
3. 显示窗口并设置其位置和大小:
```python
def show_window():
app = QApplication([])
window = CustomWindow()
window.setGeometry(0, 0, width, height) # 设置窗口尺寸
window.move(x, y) # 设置初始位置
# 当用户按下鼠标左键并拖动时,窗口会跟随鼠标移动
window.mousePressEvent = lambda event: window.move(event.globalPos() - window.pos())
window.show()
app.exec_()
```
4. 调用`show_window()`函数启动应用。
阅读全文