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.

192 lines
8.8 KiB
Python

7 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")
4 months ago
self.procedureMag = QtWidgets.QPushButton(self)
self.procedureMag.setObjectName("protocolMag")
7 months ago
self.controlMag = QtWidgets.QPushButton(self)
self.controlMag.setObjectName("controlMag")
7 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())
4 months ago
self.verticalLayout.addWidget(self.procedureMag)
self.verticalLayout.addWidget(QtWidgets.QSplitter())
self.verticalLayout.addWidget(self.controlMag)
self.verticalLayout.addWidget(QtWidgets.QSplitter())
7 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)
4 months ago
self.verticalLayout.setStretch(10, 2)
self.verticalLayout.setStretch(11, 4)
self.verticalLayout.setStretch(12, 2)
self.verticalLayout.setStretch(13, 4)
self.verticalLayout.setStretch(14, 35)
7 months ago
QtCore.QMetaObject.connectSlotsByName(self)
self.createProject.setText('工程管理')
# self.openProject.setText("打开工程")
self.varMag.setText("变量管理")
self.trendMag.setText("历史趋势")
self.userMag.setText("用户管理")
self.protocolMag.setText("通讯配置")
4 months ago
self.procedureMag.setText("规程管理")
self.controlMag.setText("控制系统")
7 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'))
self.procedureMag.setIcon(QIcon('./Static/procedure.png'))
self.controlMag.setIcon(QIcon('./Static/control.png'))
7 months ago
for btn in [self.createProject, self.varMag, self.trendMag, self.userMag, self.protocolMag, self.procedureMag, self.controlMag]:
7 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.controlMag.clicked.connect(lambda:self.controlMag.setIcon(QIcon('./Static/controlH.png')))
7 months ago
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'))
7 months ago
return True
if event.type() == QtCore.QEvent.HoverLeave and not self.createProject.isChecked():
self.createProject.setIcon(QIcon('./Static/new.png'))
7 months ago
return True
# if object == self.openProject:
# if event.type() == QtCore.QEvent.HoverEnter:
# self.openProject.setIcon(QIcon('./Static/openH.png'))
7 months ago
# return True
# if event.type() == QtCore.QEvent.HoverLeave and not self.openProject.isChecked():
# self.openProject.setIcon(QIcon('./Static/open.png'))
7 months ago
# return True
if object == self.varMag:
if event.type() == QtCore.QEvent.HoverEnter:
self.varMag.setIcon(QIcon('./Static/varMagH.png'))
7 months ago
return True
if event.type() == QtCore.QEvent.HoverLeave and not self.varMag.isChecked():
self.varMag.setIcon(QIcon('./Static/varMag.png'))
7 months ago
return True
if object == self.trendMag:
if event.type() == QtCore.QEvent.HoverEnter:
self.trendMag.setIcon(QIcon('./Static/trendH.png'))
7 months ago
return True
if event.type() == QtCore.QEvent.HoverLeave and not self.trendMag.isChecked():
self.trendMag.setIcon(QIcon('./Static/trend.png'))
7 months ago
return True
if object == self.userMag:
if event.type() == QtCore.QEvent.HoverEnter:
self.userMag.setIcon(QIcon('./Static/userMagH.png'))
7 months ago
return True
if event.type() == QtCore.QEvent.HoverLeave and not self.userMag.isChecked():
self.userMag.setIcon(QIcon('./Static/userMag.png'))
7 months ago
return True
if object == self.protocolMag:
if event.type() == QtCore.QEvent.HoverEnter:
self.protocolMag.setIcon(QIcon('./Static/settingH.png'))
7 months ago
return True
if event.type() == QtCore.QEvent.HoverLeave and not self.protocolMag.isChecked():
self.protocolMag.setIcon(QIcon('./Static/setting.png'))
7 months ago
return True
if object == self.controlMag:
if event.type() == QtCore.QEvent.HoverEnter:
self.controlMag.setIcon(QIcon('./Static/controlH.png'))
return True
if event.type() == QtCore.QEvent.HoverLeave and not self.controlMag.isChecked():
self.controlMag.setIcon(QIcon('./Static/control.png'))
return True
7 months ago
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.controlMag.setDown(False)
7 months ago
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'))
self.controlMag.setIcon(QIcon('./Static/control.png'))