コード例 #1
0
 def changeIcon(button=button,
                icon=icon,
                toggle_icon=toggle_icon,
                size=icon_size):
     if button.isChecked():
         button.setIcon(pyqt.get_icon(toggle_icon, size))
     else:
         button.setIcon(pyqt.get_icon(icon, size))
コード例 #2
0
    def create_key_button(self, item_data):
        """Create a keyframing button

        Args:
            item_data (dict): Attribute channel configuration dictionary

        Returns:
            QPushButton: The keyframe button
        """
        button = create_button()
        attr = self.namespace_sync(item_data["fullName"])
        refresh_key_button_color(button, attr)

        # right click menu
        pop_menu = QtWidgets.QMenu(button)

        next_key_action = QtWidgets.QAction('Next Keyframe', button)
        next_key_action.setIcon(pyqt.get_icon("arrow-right"))
        next_key_action.triggered.connect(partial(cmu.next_keyframe, attr))
        pop_menu.addAction(next_key_action)

        previous_key_action = QtWidgets.QAction('previous Keyframe', button)
        previous_key_action.setIcon(pyqt.get_icon("arrow-left"))
        previous_key_action.triggered.connect(
            partial(cmu.previous_keyframe, attr))
        pop_menu.addAction(previous_key_action)

        pop_menu.addSeparator()

        remove_animation_action = QtWidgets.QAction('Remove Animation', button)
        remove_animation_action.setIcon(pyqt.get_icon("trash"))
        remove_animation_action.triggered.connect(
            partial(cmu.remove_animation, attr))
        pop_menu.addAction(remove_animation_action)

        def context_menu(point):
            pop_menu.exec_(button.mapToGlobal(point))

        button.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        button.customContextMenuRequested.connect(context_menu)

        def button_clicked():
            has_key = cmu.current_frame_has_key(attr)
            key_val = cmu.value_equal_keyvalue(attr)
            if has_key and key_val:
                cmu.remove_key(attr)

            else:
                cmu.set_key(attr)

            refresh_key_button_color(button, attr)

        button.clicked.connect(button_clicked)

        return button
コード例 #3
0
def create_button(size=17,
                  text=None,
                  icon=None,
                  toggle_icon=None,
                  icon_size=None,
                  toolTip=None):
    """Create and configure a QPsuhButton

    Args:
        size (int, optional): Size of the button
        text (str, optional): Text of the button
        icon (str, optional): Icon name
        toggle_icon (str, optional): Toggle icon name. If exist will make
                                     the button checkable
        icon_size (int, optional): Icon size
        toolTip (str, optional): Buttom tool tip

    Returns:
        QPushButton: The reated button
    """
    button = QtWidgets.QPushButton()
    button.setMaximumHeight(size)
    button.setMinimumHeight(size)
    button.setMaximumWidth(size)
    button.setMinimumWidth(size)

    if toolTip:
        button.setToolTip(toolTip)

    if text:
        button.setText(text)

    if icon:
        if not icon_size:
            icon_size = size - 3
        button.setIcon(pyqt.get_icon(icon, icon_size))

    if toggle_icon:

        button.setCheckable(True)

        def changeIcon(button=button,
                       icon=icon,
                       toggle_icon=toggle_icon,
                       size=icon_size):
            if button.isChecked():
                button.setIcon(pyqt.get_icon(toggle_icon, size))
            else:
                button.setIcon(pyqt.get_icon(icon, size))

        button.clicked.connect(changeIcon)

    return button
コード例 #4
0
    def create_menu(self):
        self.menu = QtWidgets.QMenu(self)

        reset_value_action = QtWidgets.QAction('Reset Value to Default', self)
        reset_value_action.setIcon(pyqt.get_icon("rewind"))
        reset_value_action.triggered.connect(self.reset_value_slot)
        self.menu.addAction(reset_value_action)
        self.menu.addSeparator()

        sync_graph_editor_action = QtWidgets.QAction(
            'Sync Selected with Graph Editor', self)
        sync_graph_editor_action.setIcon(pyqt.get_icon("activity"))
        sync_graph_editor_action.triggered.connect(self.sync_graph_editor)
        self.menu.addAction(sync_graph_editor_action)
        self.menu.addSeparator()

        select_attr_host_action = QtWidgets.QAction('Select Host', self)
        select_attr_host_action.setIcon(pyqt.get_icon("arrow-up"))
        select_attr_host_action.triggered.connect(self.select_host)
        self.menu.addAction(select_attr_host_action)
        self.menu.addSeparator()

        set_range_action = QtWidgets.QAction('Set Range', self)
        set_range_action.setIcon(pyqt.get_icon("sliders"))
        set_range_action.triggered.connect(self.set_range_slot)
        self.menu.addAction(set_range_action)
        self.menu.addSeparator()

        self.menu.addSeparator()
        set_color_action = QtWidgets.QAction('Set Color', self)
        set_color_action.setIcon(pyqt.get_icon("edit-2"))
        set_color_action.triggered.connect(self.set_color_slot)
        self.menu.addAction(set_color_action)

        auto_color_host_action = QtWidgets.QAction('Auto Color by Host', self)
        auto_color_host_action.setIcon(pyqt.get_icon("edit-3"))
        auto_color_host_action.triggered.connect(self.auto_color_host_slot)
        self.menu.addAction(auto_color_host_action)

        auto_color_axis_action = QtWidgets.QAction('Auto Color by Axis', self)
        auto_color_axis_action.setIcon(pyqt.get_icon("edit-3"))
        auto_color_axis_action.triggered.connect(self.auto_color_axis_slot)
        self.menu.addAction(auto_color_axis_action)

        clear_color_action = QtWidgets.QAction('Clear Color', self)
        clear_color_action.setIcon(pyqt.get_icon("x-octagon"))
        clear_color_action.triggered.connect(self.clear_color_slot)
        self.menu.addAction(clear_color_action)
コード例 #5
0
ファイル: channel_master.py プロジェクト: mgear-dev/mgear4
    def create_actions(self):
        # file actions
        self.file_new_node_action = QtWidgets.QAction("New Node", self)
        self.file_new_node_action.setIcon(pyqt.get_icon("mgear_plus-square"))
        self.file_save_node_action = QtWidgets.QAction("Save Current Node",
                                                       self)
        self.file_save_node_action.setIcon(pyqt.get_icon("mgear_save"))
        self.set_external_config_action = QtWidgets.QAction(
            "Add External Config", self)
        self.set_external_config_action.setIcon(
            pyqt.get_icon("mgear_plus-circle"))
        self.remove_external_config_action = QtWidgets.QAction(
            "Remove External Config", self)
        self.remove_external_config_action.setIcon(
            pyqt.get_icon("mgear_minus-circle"))
        self.file_export_all_action = QtWidgets.QAction(
            "Export All Tabs", self)
        self.file_export_all_action.setIcon(pyqt.get_icon("mgear_log-out"))
        self.file_export_current_action = QtWidgets.QAction(
            "Export Current Tab", self)
        self.file_export_current_action.setIcon(pyqt.get_icon("mgear_log-out"))
        self.file_import_action = QtWidgets.QAction("Import", self)
        self.file_import_action.setIcon(pyqt.get_icon("mgear_log-in"))
        self.file_import_add_action = QtWidgets.QAction("Import Add", self)
        self.file_import_add_action.setIcon(pyqt.get_icon("mgear_log-in"))
        self.use_node_namespace_action = QtWidgets.QAction(
            "Use Namespace From ChannelMaster Node", self)
        self.use_node_namespace_action.setCheckable(True)
        self.use_node_namespace_action.setChecked(True)

        self.use_only_local_data_action = QtWidgets.QAction(
            "Use Only Data Embedded in Local Node", self)
        self.use_only_local_data_action.setCheckable(True)

        # Display actions
        self.display_fullname_action = QtWidgets.QAction(
            "Channel Full Name", self)
        self.display_fullname_action.setCheckable(True)
        self.display_fullname_action.setShortcut(QtGui.QKeySequence("Ctrl+F"))

        self.scrubbing_update_action = QtWidgets.QAction(
            "Update Value While Scrubbing", self)
        self.scrubbing_update_action.setCheckable(True)
        self.scrubbing_update_action.setShortcut(QtGui.QKeySequence("Ctrl+U"))

        self.display_edit_channel_order_action = QtWidgets.QAction(
            "Edit Channel Order", self)

        self.display_sync_graph_action = QtWidgets.QAction(
            "Sync with Graph Editor", self)
        self.display_sync_graph_action.setIcon(pyqt.get_icon("mgear_activity"))
        self.display_auto_sync_graph_action = QtWidgets.QAction(
            "Auto Sync with Graph Editor", self)
        self.display_auto_sync_graph_action.setCheckable(True)

        self.display_order_default_action = QtWidgets.QAction("Default", self)
        self.display_order_alphabetical_action = QtWidgets.QAction(
            "Alphabetical", self)

        # Key actions
        self.key_all_action = QtWidgets.QAction("Keyframe", self)
        self.key_all_action.setIcon(pyqt.get_icon("mgear_key"))
        self.key_all_action.setShortcut(QtGui.QKeySequence("S"))
        self.key_copy_action = QtWidgets.QAction("Copy Key", self)
        self.key_copy_action.setIcon(pyqt.get_icon("mgear_copy"))
        self.key_copy_action.setShortcut(QtGui.QKeySequence("Ctrl+C"))
        self.key_paste_action = QtWidgets.QAction("Paste Key", self)
        self.key_paste_action.setIcon(pyqt.get_icon("mgear_clipboard"))
        self.key_paste_action.setShortcut(QtGui.QKeySequence("Ctrl+V"))
        self.key_all_tabs_action = QtWidgets.QAction("Keyframe All Tabs", self)
        self.key_all_tabs_action.setCheckable(True)
        self.copypaste_all_channels_action = QtWidgets.QAction(
            "Copy/Paste All Channels", self)
        self.copypaste_all_channels_action.setCheckable(True)

        self.key_del_frame_action = QtWidgets.QAction(
            "Delete Current Frame Keyframe", self)
        self.key_del_frame_action.setIcon(pyqt.get_icon("mgear_trash-2"))
        self.key_del_frame_action.setShortcut(QtGui.QKeySequence("Shift+S"))

        # Tabs Actions
        self.tab_new_action = QtWidgets.QAction("New Tab", self)
        self.tab_new_action.setIcon(pyqt.get_icon("mgear_menu"))
        self.tab_del_action = QtWidgets.QAction("Delete Current Tab", self)
        self.tab_del_action.setIcon(pyqt.get_icon("mgear_trash-2"))
        self.tab_dup_action = QtWidgets.QAction("Duplicate Tab", self)
        self.tab_dup_action.setIcon(pyqt.get_icon("mgear_copy"))
        self.tab_rename_action = QtWidgets.QAction("Rename Tab", self)
コード例 #6
0
ファイル: channel_master.py プロジェクト: jeanim/animbits
    def create_actions(self):
        # file actions
        self.file_new_node_action = QtWidgets.QAction("New Node", self)
        self.file_new_node_action.setIcon(pyqt.get_icon("plus-square"))
        self.file_save_node_action = QtWidgets.QAction("Save Current Node",
                                                       self)
        self.file_save_node_action.setIcon(pyqt.get_icon("save"))
        self.file_export_all_action = QtWidgets.QAction(
            "Export All Tabs", self)
        self.file_export_all_action.setIcon(pyqt.get_icon("log-out"))
        self.file_export_current_action = QtWidgets.QAction(
            "Export Current Tab", self)
        self.file_export_current_action.setIcon(pyqt.get_icon("log-out"))
        self.file_import_action = QtWidgets.QAction("Import", self)
        self.file_import_action.setIcon(pyqt.get_icon("log-in"))
        self.file_import_add_action = QtWidgets.QAction("Import Add", self)
        self.file_import_add_action.setIcon(pyqt.get_icon("log-in"))

        # Display actions
        self.display_fullname_action = QtWidgets.QAction(
            "Channel Full Name", self)
        self.display_fullname_action.setCheckable(True)
        self.display_fullname_action.setShortcut(QtGui.QKeySequence("Ctrl+F"))

        self.scrubbing_update_action = QtWidgets.QAction(
            "Update Value While Scrubbing", self)
        self.scrubbing_update_action.setCheckable(True)
        self.scrubbing_update_action.setShortcut(QtGui.QKeySequence("Ctrl+U"))

        self.display_edit_channel_order_action = QtWidgets.QAction(
            "Edit Channel Order", self)

        self.display_sync_graph_action = QtWidgets.QAction(
            "Sync with Graph Editor", self)
        self.display_sync_graph_action.setIcon(pyqt.get_icon("activity"))
        self.display_auto_sync_graph_action = QtWidgets.QAction(
            "Auto Sync with Graph Editor", self)
        self.display_auto_sync_graph_action.setCheckable(True)

        self.display_order_default_action = QtWidgets.QAction("Default", self)
        self.display_order_alphabetical_action = QtWidgets.QAction(
            "Alphabetical", self)

        # Key actions
        self.key_all_action = QtWidgets.QAction("Keyframe", self)
        self.key_all_action.setIcon(pyqt.get_icon("key"))
        self.key_all_action.setShortcut(QtGui.QKeySequence("S"))
        self.key_copy_action = QtWidgets.QAction("Copy Key", self)
        self.key_copy_action.setIcon(pyqt.get_icon("copy"))
        self.key_copy_action.setShortcut(QtGui.QKeySequence("Ctrl+C"))
        self.key_paste_action = QtWidgets.QAction("Paste Key", self)
        self.key_paste_action.setIcon(pyqt.get_icon("clipboard"))
        self.key_paste_action.setShortcut(QtGui.QKeySequence("Ctrl+V"))
        self.key_all_tabs_action = QtWidgets.QAction("Keyframe All Tabs", self)
        self.key_all_tabs_action.setCheckable(True)
        self.copypaste_all_channels_action = QtWidgets.QAction(
            "Copy/Paste All Channels", self)
        self.copypaste_all_channels_action.setCheckable(True)

        self.key_del_frame_action = QtWidgets.QAction(
            "Delete Current Frame Keyframe", self)
        self.key_del_frame_action.setIcon(pyqt.get_icon("trash-2"))
        self.key_del_frame_action.setShortcut(QtGui.QKeySequence("Shift+S"))

        # Tabs Actions
        self.tab_new_action = QtWidgets.QAction("New Tab", self)
        self.tab_new_action.setIcon(pyqt.get_icon("menu"))
        self.tab_del_action = QtWidgets.QAction("Delete Current Tab", self)
        self.tab_del_action.setIcon(pyqt.get_icon("trash-2"))
        self.tab_dup_action = QtWidgets.QAction("Duplicate Tab", self)
        self.tab_dup_action.setIcon(pyqt.get_icon("copy"))
        self.tab_rename_action = QtWidgets.QAction("Rename Tab", self)