|
|
from PyQt5.QtWidgets import *
|
|
|
from PyQt5.QtCore import Qt, QSize
|
|
|
from PyQt5.QtGui import QIcon
|
|
|
import os
|
|
|
import collections
|
|
|
from static.Png import *
|
|
|
from utils.AcountModels import getPermission
|
|
|
|
|
|
|
|
|
class ToolBarSetting():
|
|
|
def __init__(self, MainWindow):
|
|
|
super().__init__()
|
|
|
if MainWindow.__class__.__name__ == 'MainWindow':
|
|
|
self.actions = getPermission(MainWindow.user)
|
|
|
self.initSetting(MainWindow)
|
|
|
def initSetting(self, MainWindow):
|
|
|
self.toolImgPath = ':/static/'
|
|
|
if MainWindow.__class__.__name__ == 'MainWindow':
|
|
|
# 创建菜单栏并添加菜单
|
|
|
MainWindow.menubar = MainWindow.menuBar() # 创建一个菜单栏实例menuber
|
|
|
# MainWindow.viewMenu = MainWindow.menubar.addMenu('&视图') # 添加菜单file
|
|
|
MainWindow.projectMenu = MainWindow.menubar.addMenu('&工程')
|
|
|
MainWindow.procedureTestingMenu = MainWindow.menubar.addMenu('&规程测试')
|
|
|
MainWindow.performanceTestingMenu = MainWindow.menubar.addMenu('&规程管理')
|
|
|
MainWindow.varForceMenu = MainWindow.menubar.addMenu('&变量强制')
|
|
|
MainWindow.recordMenu = MainWindow.menubar.addMenu('&记录')
|
|
|
# 为每个菜单添加对应关系方便添加子选项
|
|
|
self.menuBarDict = {
|
|
|
# '视图': MainWindow.viewMenu,
|
|
|
'工程': MainWindow.projectMenu,
|
|
|
'规程测试': MainWindow.procedureTestingMenu,
|
|
|
'规程管理': MainWindow.performanceTestingMenu,
|
|
|
'变量强制': MainWindow.varForceMenu,
|
|
|
'记录': MainWindow.recordMenu
|
|
|
}
|
|
|
# 设置工具栏图标存储路径
|
|
|
''' 创建工具栏对应有序字典 按钮名 : [(0: 不显示, 1: 在菜单栏和工具栏同时显示
|
|
|
2: 只在工具栏显示), 所属菜单, 按钮文字提示, 按钮对应图标]'''
|
|
|
self.toolBarDict = collections.OrderedDict()
|
|
|
self.toolBarDict['viewDefault'] = [0, '视图', '恢复默认', 'view_default.png']
|
|
|
self.toolBarDict['projectCreate'] = [1, '工程', '新建工程', 'project_new.png']
|
|
|
self.toolBarDict['projectOpen'] = [1, '工程', '打开工程', 'project_open.png']
|
|
|
# self.toolBarDict['projectSave'] = [1, '工程', '保存工程', 'project_save.png']
|
|
|
self.toolBarDict['proceduresImport'] = [1, '规程管理', '导入规程', 'procedures_import.png']
|
|
|
self.toolBarDict['proceduresExport'] = [0, '工程', '导出规程', 'procedures_export.png']
|
|
|
# self.toolBarDict['varforceUpdateGroup'] = [1, '规程管理', '用例组管理', 'varforce_update_group.png']
|
|
|
self.toolBarDict['proceduresDelete'] = [0, '工程', '删除规程', 'procedures_delete.png']
|
|
|
self.toolBarDict['proceduresSettings'] = [1, '工程', '配置', 'procedures_settings.png']
|
|
|
self.toolBarDict['procedureAutoRun'] = [1, '规程测试', '开始执行', 'procedure_run.png']
|
|
|
self.toolBarDict['procedureDebug'] = [1, '规程测试', '单步执行', 'procedure_debug.png']
|
|
|
self.toolBarDict['procedurePause'] = [1, '规程测试', '暂停/继续', 'procedure_pause.png']
|
|
|
self.toolBarDict['procedureQuit'] = [1, '规程测试', '退出', 'procedure_quit.png']
|
|
|
self.toolBarDict['procedureListPause'] = [1, '规程测试', '终止规程列表', 'procedure_pause_list.png']
|
|
|
self.toolBarDict['propertySettings'] = [0, '规程管理', '配置', 'property_settings.png']
|
|
|
self.toolBarDict['logRunResult'] = [1, '记录', '测试记录', 'log_run_result.png']
|
|
|
self.toolBarDict['logOperate'] = [1, '记录', '日志', 'log_operate.png']
|
|
|
self.toolBarDict['help'] = [0, '帮助', 'help.png']
|
|
|
self.toolBarDict['variableSettings'] = [1, '变量强制', '变量组管理', 'variable_settings.png']
|
|
|
self.toolBarDict['accountManagement'] = [2, '账户管理', 'account_management.png']
|
|
|
self.toolBarDict['pharseManagement'] = [0, '短语库管理', 'init_procedures_import.png']
|
|
|
self.toolBarDict['communication'] = [0, '通讯', 'variable_settings_icon2.png']
|
|
|
self.CreateToolBar(MainWindow)
|
|
|
elif MainWindow.__class__.__name__ == 'VariableSettingsUi':
|
|
|
# 创建菜单栏并添加菜单
|
|
|
MainWindow.menubar = MainWindow.menuBar() # 创建一个菜单栏实例menuber
|
|
|
MainWindow.cancelMenu = MainWindow.menubar.addMenu('&取消强制') # 添加菜单file
|
|
|
# 为每个菜单添加对应关系方便添加子选项
|
|
|
self.menuBarDict = {
|
|
|
'取消强制': MainWindow.cancelMenu,
|
|
|
}
|
|
|
self.toolBarDict = collections.OrderedDict()
|
|
|
self.toolBarDict['varforceSetcol'] = [0, '显示列', 'var_force_set_col.png']
|
|
|
self.toolBarDict['varforceCancelCurrentroup'] = [1, '取消强制', '取消当前强制', 'var_force_cancel_current_group.png']
|
|
|
self.toolBarDict['varforceCancelAllforceGroup'] = [1, '取消强制', '批量强制', 'var_force_cancel_all_group.png']
|
|
|
self.toolBarDict['varforceFind'] = [2, '搜索', 'var_force_find.png']
|
|
|
self.toolBarDict['varforceEdiTuple'] = [2, '编辑组', 'var_force_find_double_tuple.png']
|
|
|
self.toolBarDict['varforceNewGroup'] = [2, '保存新组', 'varforce_new_group.png']
|
|
|
self.toolBarDict['varforceAllForceGroup'] = [2, '所有强制列表', 'varforce_all_force_group.png']
|
|
|
self.toolBarDict['varExcelImport'] = [0, '导入变量配置表', 'procedures_import.png']
|
|
|
self.toolBarDict['Trend'] = [2, '历史趋势记录', 'trend_group_settings.png']
|
|
|
self.CreateToolBar(MainWindow)
|
|
|
def CreateToolBar(self, MainWindow):
|
|
|
MainWindow.toolBar = MainWindow.addToolBar('工具栏') # 创建一个工具栏实例
|
|
|
MainWindow.toolBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) # 文字图片垂直排列
|
|
|
# MainWindow.toolBar = MainWindow.addToolBar('工具栏')
|
|
|
for key, value in self.toolBarDict.items():
|
|
|
if value[0] == 1:
|
|
|
# 创建一个事件和一个特定图标和一个退出的标签
|
|
|
# if key in ['proceduresImport', 'procedureAutoRun', 'procedureListPause', 'variableSettings']:
|
|
|
# MainWindow.toolBar = MainWindow.addToolBar('工具栏')
|
|
|
# MainWindow.toolBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
|
|
|
# self.ToolBar.addWidget(self.box)
|
|
|
if MainWindow.__class__.__name__ == 'MainWindow':
|
|
|
if self.actions and MainWindow.user != 'admin':
|
|
|
if value[2] not in self.actions:
|
|
|
continue
|
|
|
Action = locals()['MainWindow.{}Action'.format(str(key))] = QAction(
|
|
|
QIcon(os.path.join(self.toolImgPath, value[-1])), value[-2], MainWindow)
|
|
|
# Action.setShortcut('Ctrl+Q') # 设置事件的快捷方式
|
|
|
Action.setStatusTip(value[-2]) # 设置事件的状态提示
|
|
|
Action.triggered.connect(getattr(MainWindow, '{}Clicked'.format(key))) # 事件的触发
|
|
|
self.menuBarDict[value[1]].addAction(Action) # 菜单添加事件
|
|
|
MainWindow.toolBar.addAction(Action) # 绑定触发事件
|
|
|
elif value[0] == 2:
|
|
|
if MainWindow.__class__.__name__ == 'MainWindow':
|
|
|
if self.actions and MainWindow.user != 'admin':
|
|
|
if value[1] not in self.actions:
|
|
|
continue
|
|
|
Action = locals()['MainWindow.{}Action'.format(str(key))] = QAction(
|
|
|
QIcon(os.path.join(self.toolImgPath, value[-1])), value[-2], MainWindow)
|
|
|
Action.setStatusTip(value[-2])
|
|
|
Action.triggered.connect(getattr(MainWindow, '{}Clicked'.format(key)))
|
|
|
MainWindow.toolBar.addAction(Action)
|
|
|
MainWindow.toolBar.setIconSize(QSize(50, 50))
|
|
|
# MainWindow.toolBar.insertSeparator(MainWindow.projectCreateAction)
|
|
|
|
|
|
|