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.

118 lines
8.0 KiB
Python

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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)