PyQt5如何实现仿QQ贴边隐藏功能
发布时间:2020-07-22 14:10:18
来源:亿速云
阅读:100
作者:小猪
这篇文章主要为大家展示了PyQt5如何实现仿QQ贴边隐藏功能,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。
此程序大致功能为:可变换颜色,贴边隐藏。
变换颜色思路
QPalette( [ˈpælət] 调色板)类相当于对话框或控件的调色板,它管理着控件或窗体的所有颜色信息,每个窗体或控件都包含一个QPalette对象,在显示时按照它的QPalette对象中对各部分各状态下的颜色的描述来进行绘制。
实现代码
def Painting(self):
color = random.choice(["CCFFFF","CC6699","CC99FF","99CCFF"])
palette1 = QPalette()
palette1.setColor(self.backgroundRole(),
QColor("#{}".format(color))) # 改变窗体颜色
self.setPalette(palette1)
贴边隐藏思路
可以判断窗口的位置,当与边缘的距离小于某值时,再判断鼠标是否在窗口,判断是否隐藏窗口;
根据隐藏窗口的隐藏位置,获得某块区域,当鼠标在这个位置时,显示窗口。
实现代码
鼠标进入事件,调用hide_or_show判断是否该显示
def enterEvent(self, event):
self.hide_or_show('show', event)
鼠标离开事件,调用hide_or_show判断是否该隐藏
def leaveEvent(self, event):
self.hide_or_show('hide', event)
鼠标点击事件
def mousePressEvent(self, event):
if event.button() == Qt.LeftButton:
self.dragPosition = event.globalPos() - self.frameGeometry(
).topLeft()
QApplication.postEvent(self, QEvent(174))
event.accept()
捕捉鼠标移动事件
def mouseMoveEvent(self, event):