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

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")
self.procedureMag = QtWidgets.QPushButton(self)
self.procedureMag.setObjectName("protocolMag")
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())
self.verticalLayout.addWidget(self.procedureMag)
self.verticalLayout.addWidget(QtWidgets.QSplitter())
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)
self.verticalLayout.setStretch(10, 2)
self.verticalLayout.setStretch(11, 4)
self.verticalLayout.setStretch(12, 40)
QtCore.QMetaObject.connectSlotsByName(self)
self.createProject.setText('工程管理')
# self.openProject.setText("打开工程")
self.varMag.setText("变量管理")
self.trendMag.setText("历史趋势")
self.userMag.setText("用户管理")
self.protocolMag.setText("通讯配置")
self.procedureMag.setText("规程管理")
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'))
for btn in [self.createProject, self.varMag, self.trendMag, self.userMag, self.protocolMag, self.procedureMag]:
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'))