Lv100版本源码上传

This commit is contained in:
西瓜°
2024-11-04 14:45:20 +08:00
parent a98bdaf4e0
commit a6dbccdead
3431 changed files with 139917 additions and 75 deletions
+132
View File
@@ -0,0 +1,132 @@
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PublicReference.utils.constant import 标题背景, 标题字体
RES_PATH = './ResourceFiles/img/UI/'
# title bar
TITLE_BAR_HEIGHT = 25
TITLE_BUTTON_SIZE = 25
TITLE_LABEL_SIZE = 25
TITLE_BUTTON_WIDTH = 25
TITLE_BUTTON_HEIGHT = 25
TITLE_ICON_MAG = 10
TITLE_MIN_ICON = RES_PATH + "min.png"
TITLE_CLS_ICON = RES_PATH + "exit.png"
WINDOW_DEFAULT_WIDTH = 800
WINDOW_DEFAULT_HEIGHT = 480
class TitleBar(QWidget):
def __init__(self, parent):
super(TitleBar, self).__init__()
self.win = parent
self.InitializeWindow()
def InitializeWindow(self):
self.isPressed = False
self.setFixedHeight(TITLE_BAR_HEIGHT)
self.InitializeViews()
pass
def InitializeViews(self):
self.setStyleSheet('''QWidget{background:transparent}''')
self.label = QLabel(self)
self.label.setStyleSheet(标题背景)
self.iconLabel = QLabel(self)
self.titleLabel = QLabel(self)
self.iconLabel.setText('纸飞机计算器')
# self.titleLabel.setStyleSheet('''QLabel{color:#9f8d5c}''')
self.minButton = QPushButton(self)
self.restoreButton = QPushButton(self)
self.closeButton = QPushButton(self)
self.minButton.setFixedSize(TITLE_BUTTON_SIZE, TITLE_BUTTON_SIZE)
# self.restoreButton.setFixedSize(TITLE_BUTTON_SIZE, TITLE_BUTTON_SIZE);
self.closeButton.setFixedSize(TITLE_BUTTON_SIZE, TITLE_BUTTON_SIZE)
self.iconLabel.setFixedSize(TITLE_LABEL_SIZE, TITLE_LABEL_SIZE)
self.titleLabel.setFixedHeight(TITLE_LABEL_SIZE)
self.iconLabel.setAlignment(Qt.AlignCenter)
self.titleLabel.setAlignment(Qt.AlignCenter)
self.minButton.setIcon(QIcon(TITLE_MIN_ICON))
self.closeButton.setIcon(QIcon(TITLE_CLS_ICON))
self.minButton.clicked.connect(self.ShowMininizedWindow)
# self.restoreButton.clicked.connect(self.ShowRestoreWindow)
self.closeButton.clicked.connect(self.CloseWindow)
self.lay = QHBoxLayout(self)
self.setLayout(self.lay)
self.lay.setSpacing(0)
self.lay.setContentsMargins(0, 0, 0, 0)
self.lay.addWidget(self.iconLabel)
self.iconLabel.setStyleSheet(标题字体)
self.lay.addWidget(self.titleLabel)
self.titleLabel.setStyleSheet(标题字体)
self.lay.addWidget(self.minButton)
# self.lay.addWidget(self.restoreButton)
self.lay.addWidget(self.closeButton)
def ShowMininizedWindow(self):
self.win.showMinimized()
def SetWidth(self, width):
self.label.resize(width, TITLE_BAR_HEIGHT)
def ShowMaximizedWindow(self):
self.win.showMaximized()
def ShowRestoreWindow(self):
if self.win.isMaximized():
self.win.showNormal()
else:
self.win.showMaximized()
def CloseWindow(self):
self.win.close()
def SetTitle(self, str):
self.titleLabel.setText(str)
def SetTitleStyle(self, str):
self.titleLabel.setStyleSheet(str)
def SetIcon(self, pix):
self.iconLabel.setPixmap(
pix.scaled(self.iconLabel.size() -
QSize(TITLE_ICON_MAG, TITLE_ICON_MAG)))
# def mouseDoubleClickEvent(self, event):
# self.ShowRestoreWindow()
# return QWidget().mouseDoubleClickEvent(event)
def mousePressEvent(self, event):
self.isPressed = True
self.startPos = event.globalPos()
return QWidget().mousePressEvent(event)
def mouseReleaseEvent(self, event):
self.isPressed = False
return QWidget().mouseReleaseEvent(event)
def mouseMoveEvent(self, event):
if self.isPressed:
if self.win.isMaximized:
self.win.showNormal()
movePos = event.globalPos() - self.startPos
self.startPos = event.globalPos()
self.win.move(self.win.pos() + movePos)
return QWidget().mouseMoveEvent(event)