You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

173 lines
7.8 KiB
Python

11 months ago
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QSizePolicy
from PyQt5.QtGui import QIcon
class MainLeft(QWidget):
def __init__(self):
super(MainLeft, self).__init__()
self.setupUi()
self.setAttribute(Qt.WA_StyledBackground, True)
def setupUi(self):
self.createProject = QtWidgets.QPushButton(self)
self.createProject.setObjectName("createProject")
# self.openProject = QtWidgets.QPushButton(self)
# self.openProject.setObjectName("openProject")
self.varMag = QtWidgets.QPushButton(self)
self.varMag.setObjectName("varMag")
self.trendMag = QtWidgets.QPushButton(self)
self.trendMag.setObjectName("trendMag")
self.userMag = QtWidgets.QPushButton(self)
self.userMag.setObjectName("userMag")
self.protocolMag = QtWidgets.QPushButton(self)
self.protocolMag.setObjectName("protocolMag")
9 months ago
self.procedureMag = QtWidgets.QPushButton(self)
self.procedureMag.setObjectName("protocolMag")
11 months ago
self.verticalLayout = QtWidgets.QVBoxLayout(self)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
spacerItem = QtWidgets.QSpacerItem(40, 10, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.verticalLayout.addWidget(QtWidgets.QSplitter())
self.verticalLayout.addWidget(self.createProject)
self.verticalLayout.addWidget(QtWidgets.QSplitter())
# self.verticalLayout.addWidget(self.openProject)
# self.verticalLayout.addWidget(QtWidgets.QSplitter())
self.verticalLayout.addWidget(self.varMag)
self.verticalLayout.addWidget(QtWidgets.QSplitter())
self.verticalLayout.addWidget(self.trendMag)
self.verticalLayout.addWidget(QtWidgets.QSplitter())
self.verticalLayout.addWidget(self.userMag)
self.verticalLayout.addWidget(QtWidgets.QSplitter())
self.verticalLayout.addWidget(self.protocolMag)
self.verticalLayout.addWidget(QtWidgets.QSplitter())
9 months ago
self.verticalLayout.addWidget(self.procedureMag)
self.verticalLayout.addWidget(QtWidgets.QSplitter())
11 months ago
self.verticalLayout.setStretch(0, 1)
self.verticalLayout.setStretch(1, 4)
self.verticalLayout.setStretch(2, 2)
self.verticalLayout.setStretch(3, 4)
self.verticalLayout.setStretch(4, 2)
self.verticalLayout.setStretch(5, 4)
self.verticalLayout.setStretch(6, 2)
self.verticalLayout.setStretch(7, 4)
self.verticalLayout.setStretch(8, 2)
self.verticalLayout.setStretch(9, 4)
9 months ago
self.verticalLayout.setStretch(10, 2)
self.verticalLayout.setStretch(11, 4)
self.verticalLayout.setStretch(12, 40)
11 months ago
QtCore.QMetaObject.connectSlotsByName(self)
self.createProject.setText('工程管理')
# self.openProject.setText("打开工程")
self.varMag.setText("变量管理")
self.trendMag.setText("历史趋势")
self.userMag.setText("用户管理")
self.protocolMag.setText("通讯配置")
9 months ago
self.procedureMag.setText("规程管理")
11 months ago
self.createProject.setIcon(QIcon(':/static/newH.png'))
# self.openProject.setIcon(QIcon(':/static/open.png'))
self.varMag.setIcon(QIcon(':/static/varMag.png'))
self.trendMag.setIcon(QIcon(':/static/trend.png'))
self.userMag.setIcon(QIcon(':/static/userMag.png'))
self.protocolMag.setIcon(QIcon(':/static/setting.png'))
9 months ago
self.procedureMag.setIcon(QIcon(':/static/procedure.png'))
11 months ago
9 months ago
for btn in [self.createProject, self.varMag, self.trendMag, self.userMag, self.protocolMag, self.procedureMag]:
11 months ago
self.setBtn(btn)
# self.openProject.clicked.connect(lambda:self.openProject.setIcon(QIcon(':/static/openH.png')))
self.createProject.clicked.connect(lambda:self.createProject.setIcon(QIcon(':/static/newH.png')))
self.varMag.clicked.connect(lambda:self.varMag.setIcon(QIcon(':/static/varMagH.png')))
self.trendMag.clicked.connect(lambda:self.trendMag.setIcon(QIcon(':/static/trendH.png')))
self.userMag.clicked.connect(lambda:self.userMag.setIcon(QIcon(':/static/userMagH.png')))
self.protocolMag.clicked.connect(lambda:self.protocolMag.setIcon(QIcon(':/static/settingH.png')))
self.createProject.setChecked(True)
self.createProject.setDown(True)
def setBtn(self, btn):
btn.setCheckable(True)
btn.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
btn.setAttribute(Qt.WA_Hover,True)
btn.installEventFilter(self)
btn.setIconSize(QtCore.QSize(26, 26))
btn.clicked.connect(self.clearButton)
btn.setAutoExclusive(True)
btn.clicked.connect(lambda:btn.setDown(True))
btn.clicked.connect(lambda:btn.setChecked(True))
def eventFilter(self, object, event):
if object == self.createProject:
if event.type() == QtCore.QEvent.HoverEnter:
self.createProject.setIcon(QIcon(':/static/newH.png'))
return True
if event.type() == QtCore.QEvent.HoverLeave and not self.createProject.isChecked():
self.createProject.setIcon(QIcon(':/static/new.png'))
return True
# if object == self.openProject:
# if event.type() == QtCore.QEvent.HoverEnter:
# self.openProject.setIcon(QIcon(':/static/openH.png'))
# return True
# if event.type() == QtCore.QEvent.HoverLeave and not self.openProject.isChecked():
# self.openProject.setIcon(QIcon(':/static/open.png'))
# return True
if object == self.varMag:
if event.type() == QtCore.QEvent.HoverEnter:
self.varMag.setIcon(QIcon(':/static/varMagH.png'))
return True
if event.type() == QtCore.QEvent.HoverLeave and not self.varMag.isChecked():
self.varMag.setIcon(QIcon(':/static/varMag.png'))
return True
if object == self.trendMag:
if event.type() == QtCore.QEvent.HoverEnter:
self.trendMag.setIcon(QIcon(':/static/trendH.png'))
return True
if event.type() == QtCore.QEvent.HoverLeave and not self.trendMag.isChecked():
self.trendMag.setIcon(QIcon(':/static/trend.png'))
return True
if object == self.userMag:
if event.type() == QtCore.QEvent.HoverEnter:
self.userMag.setIcon(QIcon(':/static/userMagH.png'))
return True
if event.type() == QtCore.QEvent.HoverLeave and not self.userMag.isChecked():
self.userMag.setIcon(QIcon(':/static/userMag.png'))
return True
if object == self.protocolMag:
if event.type() == QtCore.QEvent.HoverEnter:
self.protocolMag.setIcon(QIcon(':/static/settingH.png'))
return True
if event.type() == QtCore.QEvent.HoverLeave and not self.protocolMag.isChecked():
self.protocolMag.setIcon(QIcon(':/static/setting.png'))
return True
return False
def clearButton(self):
self.createProject.setDown(False)
# self.openProject.setDown(False)
self.varMag.setDown(False)
self.trendMag.setDown(False)
self.userMag.setDown(False)
self.protocolMag.setDown(False)
self.createProject.setIcon(QIcon(':/static/new.png'))
# self.openProject.setIcon(QIcon(':/static/open.png'))
self.varMag.setIcon(QIcon(':/static/varMag.png'))
self.trendMag.setIcon(QIcon(':/static/trend.png'))
self.userMag.setIcon(QIcon(':/static/userMag.png'))
self.protocolMag.setIcon(QIcon(':/static/setting.png'))