コード例 #1
0
    def GetObject(id, **kwargs):
        try:
            config_path = os.path.join(GloalConfig().config, 'config.xml')
            context = ApplicationContext(XMLConfig(config_path))
            obj = context.get_object(id)
            logger.info(obj)

            return obj
        except:
            logger.error("", exc_info=1)
            return None
コード例 #2
0
class ToolBarLoader(CommandActive):
    # 菜单配置路径
    config_path = os.path.join(GloalConfig().config, 'toolbar.xml')
    image_dir = GloalConfig().image

    def __init__(self, mainWindow, treeWidget, tabWidget):
        self.mainWindow = mainWindow
        #self.textBrowser = textBrowser
        self.treeWidget = treeWidget
        self.tabWidget = tabWidget

    def CreateQToolBar(self):
        _translate = QCoreApplication.translate
        screen = QGuiApplication.primaryScreen()  # 主屏幕信息
        dom_tree = dom.parse(self.config_path)
        dom_coll = dom_tree.documentElement
        if dom_coll.hasAttribute("toolbars"):
            logger.info("Root element : %s" %
                        dom_coll.getAttribute("toolbars"))
        toolbar_name = dom_coll.getAttribute("name")
        self.toolbar = QToolBar(self.mainWindow)
        self.toolbar.setObjectName(toolbar_name)
        self.toolbar.setIconSize(QtCore.QSize(60, 60))
        self.toolbar.setToolButtonStyle(Qt.ToolButtonStyle(0))
        self.toolbar.setStyleSheet('''
                QToolBar{background:#F0F0F0;border-radius:50px;}
                QToolBar:hover{background:#F0F0F0;}
                QToolButton{border:none;border-radius:50px;}
                QToolButton:hover{border-bottom:2px solid #F0F0F0;}
                ''')

        tools = dom_coll.getElementsByTagName("toolbar")
        for tool in tools:
            tool_caption = tool.getAttribute("caption")
            tool_name = tool.getAttribute("name")

            buttons = tool.getElementsByTagName("button")
            for btn in buttons:
                btn_caption = btn.getAttribute("caption")
                btn_name = btn.getAttribute("name")  # 图片路径
                btn_icon = btn.getAttribute("iconPath")  # 图片路径
                btn_toolTip = btn.getAttribute("toolTip")
                btn_shortcut = btn.getAttribute("shortcut")  # 快捷键
                btn_visible = btn.getAttribute("visible")  # 是否可见
                btn_enable = btn.getAttribute("enable")  # 是否可用
                btn_command = btn.getAttribute("command")  # 命令

                # 创建QAction
                action = ActionQ(self.mainWindow)  # 创建ActionQ信号,继承Action
                action.setObjectName(btn_name)
                action.setText(_translate("MainWindow", btn_caption))
                icon = QIcon()
                icon.addPixmap(QtGui.QPixmap(self.image_dir + '/' + btn_icon),
                               QtGui.QIcon.Normal, QtGui.QIcon.Off)
                action.setIcon(icon)  # 设置图片
                action.setToolTip(_translate("MainWindow", btn_toolTip))
                action.setVisible(True if btn_visible.lower() ==
                                  "true" else False)
                action.setEnabled(True if btn_enable.lower() ==
                                  "true" else False)
                action.setShortcut(_translate("MainWindow", btn_shortcut))
                action.setShortcutContext(QtCore.Qt.WindowShortcut)
                action.setPriority(QtWidgets.QAction.NormalPriority)
                # QActionGroup()
                # action.setActionGroup()
                action.tag = btn_command
                command = AppContext.GetObject(
                    btn_command)  # springpython 实现Ioc控制翻转
                if isinstance(command, ICommand):
                    command.mainWindow = self.mainWindow
                    #command.textBrowser = self.textBrowser  # 设置文本显示控件
                    command.treeWidget = self.treeWidget  # 设置树形结构控件
                    command.tabWidget = self.tabWidget
                    command.InitCmd(action)  # 注册action

                self.toolbar.addAction(action)

        logger.info("Root element : %s" % dom_coll.getAttribute("toolbars") +
                    "   OK")
        return self.toolbar
コード例 #3
0
class MenuLoader(CommandActive):
    # 菜单配置路径
    config_path = os.path.join(GloalConfig().config, 'menu.xml')

    def __init__(self, mainWindow, treeWidget, tabWidget):
        super(MenuLoader, self).__init__()
        #self.config_path=""
        # 菜单配置路径
        #self.config_path = os.path.join(GloalConfig().config, 'menu.xml')
        self.mainWindow = mainWindow
        #self.textBrowser = textBrowser
        self.treeWidget = treeWidget
        self.tabWidget = tabWidget

    def CreateQMenu(self):
        _translate = QCoreApplication.translate
        screen = QGuiApplication.primaryScreen()  #主屏幕信息
        dom_tree = dom.parse(self.config_path)
        dom_coll = dom_tree.documentElement
        if dom_coll.hasAttribute("menuItems"):
            logger.info("Root element : %s" %
                        dom_coll.getAttribute("menuItems"))

        menubar_name = dom_coll.getAttribute("name")
        # 创建QMenuBar
        self.menubar = QMenuBar(self.mainWindow)
        self.menubar.setObjectName(menubar_name)
        self.menubar.setGeometry(QRect(0, 0, screen.size().width(), 30))
        menus = dom_coll.getElementsByTagName("menuItem")
        for menu in menus:
            menu_id = menu.getAttribute("id")
            menu_name = menu.getAttribute("name")
            menu_caption = menu.getAttribute("caption")

            # 创建QMenu
            menu_c = QMenu(self.menubar)
            menu_c.setObjectName(menu_name)
            menu_c.setTitle(_translate("MainWindow", menu_caption))

            #创建QAction,将QAction绑定到QMenu
            buttons = menu.getElementsByTagName('button')
            for btn in buttons:
                btn_caption = btn.getAttribute("caption")
                btn_name = btn.getAttribute("name")  # 图片路径
                #btn_icon = btn.getAttribute("iconPath")  # 图片路径
                btn_toolTip = btn.getAttribute("toolTip")
                btn_shortcut = btn.getAttribute("shortcut")  # 快捷键
                btn_visible = btn.getAttribute("visible")  # 是否可见
                btn_enable = btn.getAttribute("enable")  # 是否可用
                btn_command = btn.getAttribute("command")  # 命令

                # 创建QAction
                action = ActionQ(self.mainWindow)  # 创建ActionQ信号,继承Action
                action.setObjectName(btn_name)
                action.setText(_translate("MainWindow", btn_caption))
                action.setToolTip(_translate("MainWindow", btn_toolTip))

                action.setVisible(True if btn_visible.lower() ==
                                  "true" else False)
                action.setEnabled(True if btn_enable.lower() ==
                                  "true" else False)
                action.setShortcut(_translate("MainWindow", btn_shortcut))
                action.setShortcutContext(QtCore.Qt.WindowShortcut)
                action.setPriority(QtWidgets.QAction.NormalPriority)
                action.tag = btn_command
                command = AppContext.GetObject(
                    btn_command)  #springpython 实现Ioc控制翻转

                if isinstance(command, ICommand):
                    command.mainWindow = self.mainWindow
                    #command.textBrowser = self.textBrowser#设置文本显示控件
                    command.treeWidget = self.treeWidget  #设置树形结构控件
                    command.tabWidget = self.tabWidget

                    command.InitCmd(action)  #注册action
                menu_c.addAction(action)

            self.menubar.addAction(menu_c.menuAction())

        logger.info("Root element : %s" % dom_coll.getAttribute("menuItems") +
                    "   OK")
        return self.menubar

    def closelog(self):
        logger