Lv100版本源码上传
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user