去除边框后实现拖动只需要在定义的UI类后面加上两个方法:
def mousePressEvent(self, event):
self.pressX = event.x() # 记录鼠标按下的时候的坐标
self.pressY = event.y()
def mouseMoveEvent(self, event):
x = event.x()
y = event.y() # 获取移动后的坐标
moveX = x - self.pressX
moveY = y - self.pressY # 计算移动了多少
positionX = self.frameGeometry().x() + moveX
positionY = self.frameGeometry().y() + moveY # 计算移动后主窗口在桌面的位置
self.move(positionX, positionY) # 移动主窗口
即重写了mouseMoveEvent
和mousePressEvent
方法。
实现自定义关闭按钮:
我的方法是将其设置为pushButton
关键是这一句
self.closeButton.clicked.connect(self.close)
实现最小化同理。
self.shrinkButton.clicked.connect(self.showMinimized)