📜  PyQt5 - 如何隐藏窗口的标题栏?(1)

📅  最后修改于: 2023-12-03 15:33:51.442000             🧑  作者: Mango

PyQt5 - 如何隐藏窗口的标题栏?

在 PyQt5 中,可以使用以下代码隐藏窗口的标题栏:

from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget

app = QApplication([])
window = QWidget()
window.setWindowFlags(Qt.FramelessWindowHint) # 隐藏标题栏
# 添加其他部件等

window.show()

app.exec_()

其中,setWindowFlags 函数可以设置窗口的各种标志,Qt.FramelessWindowHint 表示隐藏窗口的标题栏。

除了隐藏标题栏,这个函数还可以设置其他标志,如窗口的边框样式、最大化按钮等。具体使用方法可参考 官方文档

此外,为了让窗口能够拖动,可以使用以下代码实现:

class MainWindow(QWidget):
    # ...

    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.__is_drag = True
            self.__mouse_x = event.globalX() - self.pos().x()
            self.__mouse_y = event.globalY() - self.pos().y()

    def mouseReleaseEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.__is_drag = False

    def mouseMoveEvent(self, event):
        if self.__is_drag:
            x = event.globalX() - self.__mouse_x
            y = event.globalY() - self.__mouse_y
            self.move(x, y)

其中,mousePressEventmouseReleaseEventmouseMoveEvent 分别处理鼠标按下、松开和移动事件,实现窗口的拖动。具体实现方式可以参考 这个例子