隐藏状态栏,自己写缩小关闭的按钮,实现窗口拖动
#写在构建函数中
self.setWindowFlags(QtCore.Qt.FramelessWindowHint) #隐藏状态栏
self.pushButton_3.clicked.connect(self.close) #关闭窗口,pushButton_3替换成自己的控件名
self.pushButton_2.clicked.connect(self.showMinimized) #最小化窗口,pushButton_2替换成自己的控件名
def mousePressEvent(self, event):
if event.button() == QtCore.Qt.LeftButton:
self.m_flag = True
self.m_Position = event.globalPos() - self.pos() # 获取鼠标相对窗口的位置
event.accept()
self.setCursor(QtGui.QCursor(QtCore.Qt.OpenHandCursor)) # 更改鼠标图标
def mouseMoveEvent(self, QMouseEvent):
if QtCore.Qt.LeftButton and self.m_flag:
self.move(QMouseEvent.globalPos() - self.m_Position) # 更改窗口位置
QMouseEvent.accept()
def mouseReleaseEvent(self, QMouseEvent):
self.m_flag = False
self.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
静态启动界面(解决鼠标点击消失的bug)
import sys
import time
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QFont, QPixmap
from PyQt5.QtWidgets import QSplashScreen, qApp
class SplashPanel(QSplashScreen):
def __init__(self):
super(SplashPanel, self).__init__()
message_font = QFont()
message_font.setBold(True)
message_font.setPointSize(14)
self.setFont(message_font)
pixmap = QPixmap("C:/Users/Administrator/Desktop/login_picture/start.jpg")
self.setPixmap(pixmap)
self.show()
for i in range(1, 5):
self.showMessage('正在打开应用{}'.format('.' * i), alignment=Qt.AlignBottom, color=Qt.black)
time.sleep(0.15)
def mousePressEvent(self, evt):
pass
def mouseDoubleClickEvent(self, *args, **kwargs):
pass
def enterEvent(self, *args, **kwargs):
pass
def mouseMoveEvent(self, *args, **kwargs):
pass
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
splash = SplashPanel() #加载启动界面
qApp.processEvents() #启动画面不阻碍主界面的加载待主界面加载显示完成后,
# 启动画面就会结束,同时结束掉启动画面的进程,分别调用了finish方法和deletelater方法。
demo = ex()
demo.show() # 启动登陆界面
splash.finish(demo)
splash.deleteLater()
sys.exit(app.exec_())