def __init__(self, parent=None, *args, **kwargs): super(CreateControllerLayout, self).__init__(*args, **kwargs) self.setupUi(self) # Create Button Groups (because we get compile errors if # trying to create these in the .ui file). self.node_type_btnGrp = QtWidgets.QButtonGroup() self.node_type_btnGrp.addButton(self.group_rdo_btn) self.node_type_btnGrp.addButton(self.locator_rdo_btn) self.bake_mode_btnGrp = QtWidgets.QButtonGroup() self.bake_mode_btnGrp.addButton(self.full_bake_rdo_btn) self.bake_mode_btnGrp.addButton(self.smart_bake_rdo_btn) self.bake_mode_btnGrp.addButton(self.current_frame_rdo_btn) self.space_btnGrp = QtWidgets.QButtonGroup() self.space_btnGrp.addButton(self.world_space_rdo_btn) self.space_btnGrp.addButton(self.object_space_rdo_btn) self.space_btnGrp.addButton(self.screen_space_rdo_btn) # Create Connections self.main_object_btn.clicked.connect(self.get_main_object) self.pivot_object_btn.clicked.connect(self.get_pivot_object) self.smart_bake_rdo_btn.clicked.connect(self.smart_bake_radio_button_clicked) self.full_bake_rdo_btn.clicked.connect(self.fullbake_space_radio_button_clicked) self.current_frame_rdo_btn.clicked.connect(self.fullbake_space_radio_button_clicked) self.reset_options()
def createUI(self): self.lineEdit = QtWidgets.QLineEdit() self.setButton = QtWidgets.QPushButton("Set") self.setButton.clicked.connect(self.setter) self.lockCheckBox = QtWidgets.QCheckBox("Lock") self.lockCheckBox.stateChanged.connect(self.lock) self.modeRadioGrp = QtWidgets.QButtonGroup() self.vertexMode = QtWidgets.QRadioButton('Vertex') self.normalMode = QtWidgets.QRadioButton('Normal') self.surfaceMode = QtWidgets.QRadioButton('Surface') self.normalMode.setChecked(True) self.modeRadioGrp.addButton(self.vertexMode) self.modeRadioGrp.addButton(self.normalMode) self.modeRadioGrp.addButton(self.surfaceMode) self.modeRadioGrp.setId(self.vertexMode, 1) self.modeRadioGrp.setId(self.normalMode, 2) self.modeRadioGrp.setId(self.surfaceMode, 3) self.distanceLE = QtWidgets.QLineEdit("99999") self.distanceLock = QtWidgets.QCheckBox("Lock") self.distanceLock.stateChanged.connect(self.lockDistance) self.snapButton = QtWidgets.QPushButton("Snap") self.snapButton.setFixedHeight(40) self.snapButton.clicked.connect(self.snap)
def __init__(self, separator="/", parent=None): super(MBreadcrumb, self).__init__(parent) self._separator = separator self._main_layout = QtWidgets.QHBoxLayout() self._main_layout.setContentsMargins(0, 0, 0, 0) self._main_layout.setSpacing(0) self._main_layout.addStretch() self.setLayout(self._main_layout) self.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) self._button_group = QtWidgets.QButtonGroup() self._label_list = []
def __init__(self, orientation=QtCore.Qt.Horizontal, parent=None): super(MButtonGroupBase, self).__init__(parent=parent) self._main_layout = QtWidgets.QBoxLayout( QtWidgets.QBoxLayout.LeftToRight if orientation == QtCore.Qt.Horizontal else QtWidgets.QBoxLayout.TopToBottom) self._main_layout.setContentsMargins(0, 0, 0, 0) self.setLayout(self._main_layout) self.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) self._button_group = QtWidgets.QButtonGroup() self._orientation = ("horizontal" if orientation == QtCore.Qt.Horizontal else "vertical")
def _build(self): self.setMaximumWidth(200) _layout = QtWidgets.QVBoxLayout(self) _layout.setSpacing(0) _layout.setContentsMargins(0, 0, 0, 0) # # filter type widget # self.filter_type_widget = QtWidgets.QFrame() # _layout.addWidget(self.filter_type_widget) # self.filter_type_layout = QtWidgets.QVBoxLayout(self.filter_type_widget) # self.filter_type_layout.setSpacing(0) # self.filter_type_layout.setContentsMargins(0,0,0,0) # # title button # self.filter_type_name_button = QtWidgets.QPushButton() # self.filter_type_name_button.setObjectName("title_button") # self.filter_type_name_button.setMaximumHeight(25) # self.filter_type_name_button.setText(u"资产类型检索") # self.filter_type_name_button.setIcon(QtGui.QIcon(resource.get("icons","filter.png"))) # self.filter_type_layout.addWidget(self.filter_type_name_button) # # type widget # self.filter_type_checkbox_widget = QtWidgets.QFrame() # self.filter_type_layout.addWidget(self.filter_type_checkbox_widget) # self.filter_type_checkbox_layout = QtWidgets.QVBoxLayout(self.filter_type_checkbox_widget) # self.filter_type_checkbox_layout.setContentsMargins(20,0,0,0) # task step self.step_widget = QtWidgets.QFrame() _layout.addWidget(self.step_widget) self.step_layout = QtWidgets.QVBoxLayout(self.step_widget) self.step_layout.setSpacing(0) self.step_layout.setContentsMargins(0, 0, 0, 0) self.step_name_button = QtWidgets.QPushButton() self.step_name_button.setObjectName("title_button") self.step_name_button.setMaximumHeight(25) self.step_name_button.setText(u"场景装配任务步骤") self.step_name_button.setIcon( QtGui.QIcon(resource.get("icons", "filter.png"))) self.step_layout.addWidget(self.step_name_button) # step checkbox widget self.step_checkbox_widget = QtWidgets.QFrame() self.step_checkbox_layout = QtWidgets.QVBoxLayout( self.step_checkbox_widget) self.step_checkbox_layout.setContentsMargins(20, 0, 0, 0) self.step_group = QtWidgets.QButtonGroup(self.step_checkbox_widget) self.step_layout.addWidget(self.step_checkbox_widget) _layout.addStretch(True)
def _build(self): """ build name widget """ self.setObjectName("window_menu_frame") _layout = QtWidgets.QHBoxLayout(self) _layout.setSpacing(4) _layout.setContentsMargins(8,8,8,8) # title button self.title_button = QtWidgets.QPushButton() _layout.addWidget(self.title_button) self.title_button.setObjectName("attr_title_button") self.title_button.setMinimumWidth(120) #self.title_button.setIcon(QtGui.QIcon(resource.get("icons", "{}.png".format(self._entity_type)))) #self.title_button.setText("{}{}".format(language.word(self._entity_type), language.word("code"))) self.title_button.setText(u"渲染器") self.renderer_group = QtWidgets.QButtonGroup() # name lineedit for _renderer in renderers: _renderer_checkbox = QtWidgets.QCheckBox() _renderer_checkbox.setText(_renderer) _layout.addWidget(_renderer_checkbox) self.renderer_group.addButton(_renderer_checkbox) _layout.addStretch(True) # self.code_lineedit = lineedit.LineEdit() # _layout.addWidget(self.code_lineedit) # self.code_lineedit.set_tip(language.word("required")) # _code_reg_exp = QtCore.QRegExp("[A-Za-z0-9_]{6,30}") # _pReg = QtGui.QRegExpValidator(_code_reg_exp) # self.code_lineedit.setValidator(_pReg) # # star button # self.star_button = QtWidgets.QPushButton() # _layout.addWidget(self.star_button) # self.star_button.setObjectName("attr_title_button") # self.star_button.setIcon(QtGui.QIcon(resource.get("icons", "must.png"))) # self.star_button.setMaximumSize(20,20)
def init_widgets(self): w = QtWidgets.QWidget() w.setAttribute(QtCore.Qt.WA_StyledBackground, True) l = QtWidgets.QHBoxLayout() l.setSpacing(20) w.setLayout(l) def group_changed(*args): self.emit_changed() def press_button(index): def do_press(*args): self.button_group.button(index).setChecked(True) self.emit_changed() return do_press self.button_group = QtWidgets.QButtonGroup() self.button_group.buttonClicked.connect(group_changed) for i, opt in enumerate(self.options): c = QtWidgets.QCheckBox(self.parent()) if i == 0: c.setChecked(True) c.setFixedSize(20, 20) cl = QtWidgets.QLabel(opt) cl.setProperty('clickable', True) cl.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) cl.mousePressEvent = press_button(i) bl = QtWidgets.QHBoxLayout() bl.setSpacing(5) bl.addWidget(cl) bl.addWidget(c) self.button_group.addButton(c, i) l.addLayout(bl) return (w, )
def createUI(self): self.lineEdit = QtWidgets.QLineEdit() self.lineEdit.setEnabled(False) self.setButton = QtWidgets.QPushButton("Set") self.setButton.clicked.connect(self.setter) self.modeRadioGrp = QtWidgets.QButtonGroup() self.vertexMode = QtWidgets.QRadioButton('Vertex') self.normalMode = QtWidgets.QRadioButton('Normal') self.surfaceMode = QtWidgets.QRadioButton('Surface') self.normalMode.setChecked(True) self.modeRadioGrp.addButton(self.vertexMode) self.modeRadioGrp.addButton(self.normalMode) self.modeRadioGrp.addButton(self.surfaceMode) self.modeRadioGrp.setId(self.vertexMode, 1) self.modeRadioGrp.setId(self.normalMode, 2) self.modeRadioGrp.setId(self.surfaceMode, 3) self.distanceLE = QtWidgets.QLineEdit("99999") self.distanceLock = QtWidgets.QCheckBox("Lock") self.distanceLock.stateChanged.connect(self.lockDistance) self.customVectorCheck = QtWidgets.QCheckBox("Use custom vector") self.customVectorCheck.stateChanged.connect( self.changeCustomVectorState) self.customVectorX = QtWidgets.QLineEdit("0") self.customVectorY = QtWidgets.QLineEdit("0") self.customVectorZ = QtWidgets.QLineEdit("0") self.customVectorX.setEnabled(False) self.customVectorY.setEnabled(False) self.customVectorZ.setEnabled(False) self.tbdCheckBox = QtWidgets.QCheckBox("Test both directions") self.snapButton = QtWidgets.QPushButton("Snap") self.snapButton.setFixedHeight(40) self.snapButton.clicked.connect(self.snap)
def setupOptionsUi(self, parent): # override """ Build options UI containing different preset filter types """ self.optsVLayout = QtWidgets.QVBoxLayout(parent) self.optsVLayout.setObjectName("optsVLayout") self.optsSimpleTypesGrid = QtWidgets.QGridLayout(parent) # self.optsSimpleTypesGrid.setSpacing(8) self.optsSimpleTypesGrid.setContentsMargins(0, 0, 0, 0) self.optsVLayout.addLayout(self.optsSimpleTypesGrid) # create a grid of buttons for toggling some basic node kwargs btnGroup = QtWidgets.QButtonGroup(parent) btnGroup.setExclusive(False) btnGroup.buttonToggled.connect(self.setNodeKwargForSimpleType) numColumns = 3 row, col = 0, 0 for key in self.searchModel.commonNodeKwargKeys: btn = QtWidgets.QPushButton(parent) btn.setObjectName('nodeKwargBtn_{0}'.format(key)) btn.setCheckable(True) btn.setChecked(QtCore.Qt.Checked if self.searchModel.getNodeKwargValue(key) else QtCore.Qt.Unchecked) btn.setText(key.title()) btnGroup.addButton(btn) self.optsSimpleTypesGrid.addWidget(btn, row, col) col += 1 if col >= numColumns: col = 0 row += 1 # create a custom flags input field for more granular control self.optsNodeKwargsAdvancedLabel = QtWidgets.QLabel(parent) self.optsNodeKwargsAdvancedLabel.setWordWrap(True) self.optsNodeKwargsAdvancedLabel.setText('additional flags are supported: e.g. `-type joint`') self.optsNodeKwargsAdvancedLabel.setObjectName('optsNodeKwargsAdvancedLabel') self.optsVLayout.addWidget(self.optsNodeKwargsAdvancedLabel)
def __init__(self, toggle_names, plot_widget, data_type): """ Builds the data control widget with the supplied toggle names and data types :param toggle_names: list of toggle names to add to the widget :param plot_widget: QWidget that the toggle is to operate on :param data_type: str, type of toggles to create supported: 'Axis', 'Derivative' """ super(DataControlWidget, self).__init__() self.main_layout = None # QVBoxLayout self.toggle_names = toggle_names self.plot_widget = plot_widget self.data_type = data_type self.toggles = {} self.toggle_group = QtWidgets.QButtonGroup() self.toggle_group.setExclusive(False) self.isolate_toggle = None # DataToggle object reference self.__build_data_control_widget()
def __init__(self, parent, tab=0): """Constructor for the OpenDialog.""" super().__init__(parent) self.setWindowTitle(self.tr("Open Simulation")) self.setMinimumWidth(800) self.setMinimumHeight(800) m = 5 containerLayout = QtWidgets.QHBoxLayout() containerLayout.setContentsMargins(m, m, m, m) self.setLayout(containerLayout) # ======================================== # Left Bar + navigation self.leftBar = QtWidgets.QVBoxLayout() self.leftBar.setContentsMargins(0, 0, 0, 0) containerLayout.addLayout(self.leftBar) self.buttGroup = QtWidgets.QButtonGroup() self.buttGroup.setExclusive(True) self.leftBar.addWidget(self._make_nav_button(self.tr("Sims"), NAV.sims)) self.leftBar.addWidget( self._make_nav_button(self.tr("Recent"), NAV.recent)) self.leftBar.addWidget( self._make_nav_button(self.tr("Browse"), NAV.filesystem)) self.leftBar.addStretch(20) # ================================================================================== # Stack widget for main mainLayout = QtWidgets.QVBoxLayout() mainLayout.setContentsMargins(0, 0, 0, 0) containerLayout.addLayout(mainLayout) self.stackWidget = QtWidgets.QStackedWidget() mainLayout.addWidget(self.stackWidget, 200) # ================= # Downloaded Sims self.downloadWidget = QtWidgets.QWidget() self.downloadLayout = QtWidgets.QVBoxLayout() self.downloadLayout.setContentsMargins(0, 0, 0, 0) self.downloadWidget.setLayout(self.downloadLayout) self.stackWidget.addWidget(self.downloadWidget) tbBrowse = QtWidgets.QToolBar() self.downloadLayout.addWidget(tbBrowse) self.txtUrl = QtWidgets.QLineEdit(self) self.txtUrl.setText(ts2.get_info().get('simulations_repo')) tbBrowse.addWidget(self.txtUrl) self.buttDownload = tbBrowse.addAction("Download", self.onDownload) self.treeSims = QtWidgets.QTreeWidget() self.downloadLayout.addWidget(self.treeSims) hitem = self.treeSims.headerItem() hitem.setText(C.name, "Name") hitem.setText(C.description, "Description") hitem.setText(C.file_name, "File") hitem.setText(C.file_path, "Path") self.treeSims.setColumnHidden(C.file_path, True) self.treeSims.header().setStretchLastSection(True) self.treeSims.itemDoubleClicked.connect(self.onTreeSimsItemDblClicked) # ===================================== # Recent self.treeRecent = QtWidgets.QTreeWidget() self.stackWidget.addWidget(self.treeRecent) hitem = self.treeRecent.headerItem() hitem.setText(0, "Path") self.treeRecent.itemDoubleClicked.connect( self.onTreeRecentItemDblClicked) # ===================================== # Browse self.filesModel = QtWidgets.QFileSystemModel() self.filesModel.setRootPath(QtCore.QDir.homePath()) self.filesModel.setNameFilters(["*.ts2", "*.json"]) self.treeFiles = QtWidgets.QTreeView() self.treeFiles.setModel(self.filesModel) self.stackWidget.addWidget(self.treeFiles) self.treeFiles.doubleClicked.connect(self.onTreeBrowseItemDblClicked) # ================================= # Bottom status self.statusBar = widgets.StatusBar() mainLayout.addWidget(self.statusBar, 0) if settings.debug: self.statusBar.showMessage(settings.simulationsDir) self.buttGroup.buttonToggled.connect(self.onNavButtClicked) self.buttGroup.button(tab).setChecked(True)
def get_input(title, data, options=None): if options is None: options = DEFAULT_OPTIONS.copy() dialog = QtWidgets.QWidget() layout = QtWidgets.QGridLayout() dialog.setLayout(layout) layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(4) widget_map = dict() row = 0 for key, value in data.items(): label = QtWidgets.QLabel('{name}:'.format(name=key)) layout.addWidget(label, row, 0) if PropValue.isBool(value): widget = QtWidgets.QCheckBox() widget.setChecked(PropValue.toBool(value)) layout.addWidget(widget, row, 1) widget_map[key] = widget elif PropValue.isColor(value): widget = SetColorButton() widget.set_color(PropValue.toColor(value)) layout.addWidget(widget, row, 1) widget_map[key] = widget elif PropValue.isFloat(value): widget = QtWidgets.QDoubleSpinBox() widget.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) widget.setMaximum(options['numericMax']) widget.setMinimum(options['numericMin']) widget.setDecimals(options['numericPrecision']) widget.setValue(PropValue.toFloat(value)) layout.addWidget(widget, row, 1) widget_map[key] = widget elif PropValue.isInt(value): widget = QtWidgets.QSpinBox() widget.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) widget.setMaximum(options['numericMax']) widget.setMinimum(options['numericMin']) widget.setValue(PropValue.toInt(value)) layout.addWidget(widget, row, 1) widget_map[key] = widget elif PropValue.isVector3D(value): value = PropValue.toVector3D(value) widget = QtWidgets.QWidget() wlayout = QtWidgets.QHBoxLayout(widget) wlayout.setContentsMargins(2, 2, 2, 2) wlayout.setSpacing(2) xwidget = QtWidgets.QDoubleSpinBox() xwidget.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) xwidget.setValue(value.x) wlayout.addWidget(xwidget) ywidget = QtWidgets.QDoubleSpinBox() ywidget.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) ywidget.setValue(value.y) wlayout.addWidget(ywidget) zwidget = QtWidgets.QDoubleSpinBox() zwidget.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) zwidget.setValue(value.z) wlayout.addWidget(zwidget) layout.addWidget(widget, row, 1) widget_map[key] = widget elif PropValue.isEnum(value): if options['listDisplaysAsRadios']: values = PropValue.toEnum(value) widget = QtWidgets.QWidget() button_group = QtWidgets.QButtonGroup() wlayout = QtWidgets.QHBoxLayout(widget) wlayout.setContentsMargins(2, 2, 2, 2) wlayout.setSpacing(2) isChecked = False for val in values: button = QtWidgets.QRadioButton(val) button_group.addButton(button) wlayout.addWidget(button) if not isChecked: button.setChecked(True) isChecked = True layout.addWidget(widget, row, 1) widget_map[key] = widget else: widget = QtWidgets.QComboBox() widget.addItems(PropValue.toEnum(value)) layout.addWidget(widget, row, 1) widget_map[key] = widget elif PropValue.isString(value): widget = QtWidgets.QLineEdit(PropValue.toString(value)) layout.addWidget(widget, row, 1) widget_map[key] = widget row += 1 dialog.widget_map = widget_map grp = PropGroup(title, dialog) return grp
def __init__(self, parent=None): super(RigExtensionView, self).__init__(parent=parent) self.associateBtn = QtWidgets.QPushButton('associate') self.associateBtn.setToolTip( 'Pair a source node with a target node for mirroring.') self.associateBtn.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.disassociateBtn = QtWidgets.QPushButton('disassociate') self.disassociateBtn.setToolTip( 'Break and clear the association of a node and its target.') self.disassociateBtn.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.xAxisBtn = QtWidgets.QPushButton('X') self.xAxisBtn.setToolTip('Toggle on to mirror across the X Axis.') self.xAxisBtn.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.xAxisBtn.setCheckable(True) self.xAxisBtn.setChecked(True) self.yAxisBtn = QtWidgets.QPushButton('Y') self.yAxisBtn.setToolTip('Toggle on to mirror across the Y Axis.') self.yAxisBtn.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.yAxisBtn.setCheckable(True) self.zAxisBtn = QtWidgets.QPushButton('Z') self.zAxisBtn.setToolTip('Toggle on to mirror across the Z Axis.') self.zAxisBtn.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.zAxisBtn.setCheckable(True) mirrorAxisGrp = QtWidgets.QButtonGroup(self) mirrorAxisGrp.setExclusive(True) mirrorAxisGrp.addButton(self.xAxisBtn) mirrorAxisGrp.addButton(self.yAxisBtn) mirrorAxisGrp.addButton(self.zAxisBtn) self.simpleMirrorModeBtn = QtWidgets.QPushButton('Simple') self.simpleMirrorModeBtn.setToolTip( 'Toggle on to mirror a node in `FK` mode.') self.simpleMirrorModeBtn.setCheckable(True) self.simpleMirrorModeBtn.setChecked(True) self.simpleMirrorModeBtn.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.inverseMirrorModeBtn = QtWidgets.QPushButton('Inverse') self.inverseMirrorModeBtn.setToolTip( 'Toggle on to mirror a node in `IK` mode.') self.inverseMirrorModeBtn.setCheckable(True) self.inverseMirrorModeBtn.setSizePolicy( QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) mirrorModeGrp = QtWidgets.QButtonGroup(self) mirrorModeGrp.setExclusive(True) mirrorModeGrp.addButton(self.simpleMirrorModeBtn) mirrorModeGrp.addButton(self.inverseMirrorModeBtn) self.editCustomMirrorBtn = QtWidgets.QPushButton( 'Edit Custom Mirroring') self.editCustomMirrorBtn.setToolTip( 'Customize how specific attributes mirror between associated nodes.' ) self.recursiveChb = QtWidgets.QCheckBox('Mirror Recursively') self.recursiveChb.setToolTip( 'Toggle on to run a mirror function on all children of a selected node.' ) self.mirrorBtn = QtWidgets.QPushButton('Mirror Node') self.mirrorBtn.setToolTip( 'Mirror the creation, parenting, and transform of a selected node.' ) self.mirrorParentingBtn = QtWidgets.QPushButton('Mirror Parenting') self.mirrorParentingBtn.setToolTip( 'Mirror only the parenting of a selected node, must be associated already.' ) self.mirrorTransformBtn = QtWidgets.QPushButton('Mirror Transform') self.mirrorTransformBtn.setToolTip( 'Mirror only the transformation of a selected node, must be associated already.' ) pairNodesLayout = QtWidgets.QHBoxLayout() pairNodesLayout.setAlignment(QtCore.Qt.AlignTop) pairNodesLayout.setSpacing(1) pairNodesLayout.setContentsMargins(0, 0, 0, 0) pairNodesLayout.addWidget(self.associateBtn) pairNodesLayout.addWidget(self.disassociateBtn) editCustomLayout = QtWidgets.QHBoxLayout() editCustomLayout.setAlignment(QtCore.Qt.AlignTop) editCustomLayout.setSpacing(1) editCustomLayout.setContentsMargins(0, 2, 0, 0) editCustomLayout.addWidget(self.editCustomMirrorBtn) mirrorDirLayout = QtWidgets.QHBoxLayout() mirrorDirLayout.setAlignment(QtCore.Qt.AlignTop) mirrorDirLayout.setSpacing(1) mirrorDirLayout.setContentsMargins(0, 10, 0, 0) mirrorDirLayout.addWidget(self.xAxisBtn) mirrorDirLayout.addWidget(self.yAxisBtn) mirrorDirLayout.addWidget(self.zAxisBtn) mirrorTypeLayout = QtWidgets.QHBoxLayout() mirrorTypeLayout.setAlignment(QtCore.Qt.AlignTop) mirrorTypeLayout.setSpacing(1) mirrorTypeLayout.setContentsMargins(0, 2, 0, 0) mirrorTypeLayout.addWidget(self.simpleMirrorModeBtn) mirrorTypeLayout.addWidget(self.inverseMirrorModeBtn) mirrorFuncLayout = QtWidgets.QVBoxLayout() mirrorFuncLayout.setAlignment(QtCore.Qt.AlignTop) mirrorFuncLayout.setSpacing(1) mirrorFuncLayout.setContentsMargins(0, 10, 0, 0) mirrorFuncLayout.addWidget(self.recursiveChb) mirrorFuncLayout.addWidget(self.mirrorBtn) mirrorFuncLayout.addWidget(self.mirrorParentingBtn) mirrorFuncLayout.addWidget(self.mirrorTransformBtn) # settings layout settingsLayout = QtWidgets.QVBoxLayout() settingsLayout.setAlignment(QtCore.Qt.AlignTop) settingsLayout.setSpacing(0) settingsLayout.setContentsMargins(5, 5, 5, 10) settingsLayout.addLayout(pairNodesLayout) settingsLayout.addLayout(editCustomLayout) settingsLayout.addLayout(mirrorDirLayout) settingsLayout.addLayout(mirrorTypeLayout) settingsLayout.addLayout(mirrorFuncLayout) mirrorSettingsGrp = QtWidgets.QGroupBox('') mirrorSettingsGrp.setLayout(settingsLayout) # top layout mainLayout = QtWidgets.QVBoxLayout() mainLayout.setAlignment(QtCore.Qt.AlignTop) mainLayout.setSpacing(0) mainLayout.setContentsMargins(0, 0, 0, 0) mainLayout.addWidget(mirrorSettingsGrp) self.setLayout(mainLayout) self.setObjectName('RigMirrorToolsView') self.setWindowTitle('Rig Mirror Tools') self.associateBtn.clicked.connect(self.associateNodes) self.disassociateBtn.clicked.connect(self.disassociateNodes) self.mirrorBtn.clicked.connect(self.mirrorNodes) self.mirrorParentingBtn.clicked.connect(self.mirrorParenting) self.mirrorTransformBtn.clicked.connect(self.mirrorTransforms)
def _build(self): self.setMaximumWidth(200) _layout = QtWidgets.QVBoxLayout(self) _layout.setSpacing(0) _layout.setContentsMargins(0, 0, 0, 0) # # filter type widget # self.filter_type_widget = QtWidgets.QFrame() # _layout.addWidget(self.filter_type_widget) # self.filter_type_layout = QtWidgets.QVBoxLayout(self.filter_type_widget) # self.filter_type_layout.setSpacing(0) # self.filter_type_layout.setContentsMargins(0,0,0,0) # # title button # self.filter_project_step_button = QtWidgets.QPushButton() # self.filter_project_step_button.setMaximumHeight(25) # self.filter_project_step_button.setText(u"任务步骤检索") # self.filter_project_step_button.setIcon(QtGui.QIcon(resource.get("icons","filter.png"))) # self.filter_type_layout.addWidget(self.filter_project_step_button) # # type widget # self.filter_project_step_checkbox_widget = QtWidgets.QFrame() # self.filter_type_layout.addWidget(self.filter_project_step_checkbox_widget) # self.filter_project_step_checkbox_layout = QtWidgets.QVBoxLayout(self.filter_project_step_checkbox_widget) # self.filter_project_step_checkbox_layout.setContentsMargins(20,0,0,0) # self.step_name_button = QtWidgets.QPushButton() # self.step_name_button.setMaximumHeight(25) # self.step_name_button.setText(u"任务步骤") # self.step_name_button.setIcon(QtGui.QIcon(resource.get("icons","filter.png"))) # _layout.addWidget(self.step_name_button) # asset task step self.step_widget = QtWidgets.QFrame() _layout.addWidget(self.step_widget) self.step_layout = QtWidgets.QVBoxLayout(self.step_widget) self.step_layout.setSpacing(0) self.step_layout.setContentsMargins(0, 0, 0, 0) # asset self.asset_step_name_button = QtWidgets.QPushButton() self.asset_step_name_button.setMaximumHeight(25) self.asset_step_name_button.setText( language.word("task step for asset")) self.asset_step_name_button.setObjectName("attr_name_button") self.asset_step_name_button.setIcon( QtGui.QIcon(resource.get("icons", "asset.png"))) self.step_layout.addWidget(self.asset_step_name_button) self.asset_step_checkbox_widget = QtWidgets.QFrame() self.asset_step_checkbox_layout = QtWidgets.QVBoxLayout( self.asset_step_checkbox_widget) self.asset_step_checkbox_layout.setContentsMargins(20, 0, 0, 0) self.step_layout.addWidget(self.asset_step_checkbox_widget) # # sequence # self.sequence_step_name_button = QtWidgets.QPushButton() # self.sequence_step_name_button.setMaximumHeight(25) # self.sequence_step_name_button.setText(language.word("sequence")) # self.sequence_step_name_button.setIcon(QtGui.QIcon(resource.get("icons","sequence.png"))) # self.step_layout.addWidget(self.sequence_step_name_button) # self.sequence_step_checkbox_widget = QtWidgets.QFrame() # self.sequence_step_checkbox_layout = QtWidgets.QVBoxLayout(self.sequence_step_checkbox_widget) # self.sequence_step_checkbox_layout.setContentsMargins(20,0,0,0) # self.step_layout.addWidget(self.sequence_step_checkbox_widget) # # shot # self.shot_step_name_button = QtWidgets.QPushButton() # self.shot_step_name_button.setMaximumHeight(25) # self.shot_step_name_button.setText(language.word("shot")) # self.shot_step_name_button.setIcon(QtGui.QIcon(resource.get("icons","shot.png"))) # self.step_layout.addWidget(self.shot_step_name_button) # self.shot_step_checkbox_widget = QtWidgets.QFrame() # self.shot_step_checkbox_layout = QtWidgets.QVBoxLayout(self.shot_step_checkbox_widget) # self.shot_step_checkbox_layout.setContentsMargins(20,0,0,0) # self.step_layout.addWidget(self.shot_step_checkbox_widget) # # step checkbox widget # self.step_checkbox_widget = QtWidgets.QFrame() # self.step_checkbox_layout = QtWidgets.QVBoxLayout(self.step_checkbox_widget) # self.step_checkbox_layout.setContentsMargins(20,0,0,0) self.step_group = QtWidgets.QButtonGroup(self) # self.step_layout.addWidget(self.step_checkbox_widget) _layout.addStretch(True) # update all self.update_project_step_button = QtWidgets.QPushButton() self.update_project_step_button.setMinimumSize(100, 40) self.update_project_step_button.setText(u"任务步骤批量更新") _layout.addWidget(self.update_project_step_button)
def initUI(self): #Create 'Main Menu' button self.mainButton = QtWidgets.QPushButton(str(self.name), self) self.mainButton.setObjectName('main') self.mainButton.setStyleSheet( "QPushButton#main::menu-indicator {subcontrol-position: left bottom; bottom: -4px;}" ) self.createMenus() self.scaleButton = QtWidgets.QPushButton('S') self.scaleButton.setObjectName('S') self.scaleButton.setCheckable(True) self.scaleButton.setAutoExclusive(False) self.scaleButton.setStyleSheet( "QPushButton#S {background-color: dimgray; min-width: 0.5em; min-height: 1.5em; border-radius: 12px; font-weight: bold; font-size: 10pt;} QPushButton#S:checked {background-color: darkgray;}" ) self.scaleWidget = TransformElement('scale', self) self.scaleButton.clicked.connect(self.SRT_stateUpdate) self.rotateButton = QtWidgets.QPushButton('R') self.rotateButton.setObjectName('R') self.rotateButton.setStyleSheet( "QPushButton#R {background-color: dimgray; min-width: 1.2em; min-height: 1.5em; border-radius: 12px; font-weight: bold; font-size: 10pt;} QPushButton#R:checked {background-color: darkgray;}" ) self.rotateButton.setCheckable(True) self.rotateButton.setAutoExclusive(False) self.rotateWidget = TransformElement('rotate', self) self.rotateWidget.X.asDegree = True self.rotateWidget.Y.asDegree = True self.rotateWidget.Z.asDegree = True self.rotateButton.clicked.connect(self.SRT_stateUpdate) self.translateButton = QtWidgets.QPushButton('T') self.translateButton.setObjectName('T') self.translateButton.setStyleSheet( "QPushButton#T {background-color: dimgray; min-width: 1.2em; min-height: 1.5em; border-radius: 12px; font-weight: bold; font-size: 10pt;} QPushButton#T:checked {background-color: darkgray;}" ) self.translateButton.setCheckable(True) self.translateButton.setAutoExclusive(False) self.translateWidget = TransformElement('translate', self) self.translateButton.clicked.connect(self.SRT_stateUpdate) self.SRTgroup = QtWidgets.QButtonGroup() self.SRTgroup.setExclusive(True) self.SRTgroup.addButton(self.scaleButton) self.SRTgroup.addButton(self.rotateButton) self.SRTgroup.addButton(self.translateButton) self.globalButton = QtWidgets.QPushButton('Global') self.globalButton.setCheckable(True) self.localButton = QtWidgets.QPushButton('Local') self.localButton.setCheckable(True) self.viewButton = QtWidgets.QPushButton('View') self.viewButton.setCheckable(True) self.parentButton = QtWidgets.QPushButton('Parent') self.parentButton.setCheckable(True) self.addButton = QtWidgets.QPushButton('Add') self.addButton.setCheckable(True) self.refButton = TooglableMenuButton( os.path.join(self.iconPath, "leftTopArrow.png"), self.refMenu, 'Ref') self.refButton.setObjectName('Ref') self.refButton.setCheckable(True) self.planeButton = TooglableMenuButton( os.path.join(self.iconPath, "leftTopArrow.png"), self.refMenu, 'Plane') self.planeButton.setObjectName('Plane') self.planeButton.setCheckable(True) self.volumeButton = QtWidgets.QPushButton('Vol') self.volumeButton.setCheckable(True) self.SRTModegroup = QtWidgets.QButtonGroup() self.SRTModegroup.setExclusive(True) self.SRTModegroup.addButton(self.globalButton) self.SRTModegroup.addButton(self.localButton) self.SRTModegroup.addButton(self.viewButton) self.SRTModegroup.addButton(self.parentButton) self.SRTModegroup.addButton(self.addButton) self.SRTModegroup.addButton(self.refButton) self.SRTModegroup.addButton(self.planeButton) self.SRTModegroup.addButton(self.volumeButton) self.cogButton = QtWidgets.QPushButton('COG') self.cogButton.setCheckable(True) self.proportionalButton = QtWidgets.QPushButton('Prop') self.proportionalButton.setCheckable(True) self.symmetryButton = TooglableMenuButton( os.path.join(self.iconPath, "leftTopArrow.png"), self.symMenu, 'Sym') self.symmetryButton.setCheckable(True) SRTgrid = QtWidgets.QGridLayout() SRTgrid.setSpacing(0) SRTgrid.setContentsMargins(2, 2, 2, 2) SRTgrid.addWidget(self.scaleButton, 0, 2) SRTgrid.addWidget(self.scaleWidget, 0, 0, 1, 2) SRTgrid.addWidget(self.rotateButton, 1, 2) SRTgrid.addWidget(self.rotateWidget, 1, 0, 1, 2) SRTgrid.addWidget(self.translateButton, 2, 2) SRTgrid.addWidget(self.translateWidget, 2, 0, 1, 2) SRToptionsGrid = QtWidgets.QGridLayout() SRToptionsGrid.setSpacing(0) SRToptionsGrid.addWidget(self.globalButton, 0, 0) SRToptionsGrid.addWidget(self.localButton, 0, 1) SRToptionsGrid.addWidget(self.viewButton, 0, 2) SRToptionsGrid.addWidget(self.parentButton, 1, 0) SRToptionsGrid.addWidget(self.addButton, 1, 0) SRToptionsGrid.addWidget(self.refButton, 1, 1) SRToptionsGrid.addWidget(self.planeButton, 1, 2) SRToptionsGrid.addWidget(self.volumeButton, 1, 2) SRToptionsGrid.setRowMinimumHeight(2, 2) SRToptionsGrid.addWidget(self.cogButton, 3, 0) SRToptionsGrid.addWidget(self.proportionalButton, 3, 1) SRToptionsGrid.addWidget(self.symmetryButton, 3, 2) mainGrid = QtWidgets.QGridLayout() mainGrid.setSpacing(0) mainGrid.setContentsMargins(0, 0, 0, 0) mainGrid.addWidget(self.mainButton, 0, 0) mainGrid.addLayout(SRTgrid, 1, 0) mainGrid.addLayout(SRToptionsGrid, 2, 0) self.setLayout(mainGrid)
def __init__(self, parent=None): """Create the visual components. Args: parent (QtWidgets.QWidget): Qt object to be the parent this one lives under. Returns: None """ super(AnimExtensionView, self).__init__(parent=parent) # mirror settings self.selectionBtn = QtWidgets.QPushButton('Selection') self.selectionBtn.setToolTip( 'Toggle on to mirror based on pairs of selected nodes.') self.selectionBtn.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) self.selectionBtn.setCheckable(True) self.selectionBtn.setChecked(True) self.rigBtn = QtWidgets.QPushButton('Rig') self.rigBtn.setToolTip( 'Toggle on to mirror based on the rig settings.') self.rigBtn.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) self.rigBtn.setMinimumWidth(self.selectionBtn.sizeHint().width()) self.rigBtn.setCheckable(True) mirrorModeGrp = QtWidgets.QButtonGroup(self) mirrorModeGrp.setExclusive(True) mirrorModeGrp.addButton(self.selectionBtn) mirrorModeGrp.addButton(self.rigBtn) self.mirrorTypeCombo = QtWidgets.QComboBox() self.mirrorTypeCombo.setToolTip( 'How to mirror: Auto >> Rig Settings, Simple >> FK, Inverse >> IK.' ) self.mirrorTypeCombo.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) self.mirrorTypeCombo.addItems(['Auto', 'Simple', 'Inverse']) self.xAxisBtn = QtWidgets.QPushButton('X') self.xAxisBtn.setToolTip('Toggle on to mirror across the X Axis.') self.xAxisBtn.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) self.xAxisBtn.setCheckable(True) self.xAxisBtn.setChecked(True) self.yAxisBtn = QtWidgets.QPushButton('Y') self.yAxisBtn.setToolTip('Toggle on to mirror across the Y Axis.') self.yAxisBtn.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) self.yAxisBtn.setCheckable(True) self.zAxisBtn = QtWidgets.QPushButton('Z') self.zAxisBtn.setToolTip('Toggle on to mirror across the Z Axis.') self.zAxisBtn.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) self.zAxisBtn.setCheckable(True) mirrorAxisGrp = QtWidgets.QButtonGroup(self) mirrorAxisGrp.setExclusive(True) mirrorAxisGrp.addButton(self.xAxisBtn) mirrorAxisGrp.addButton(self.yAxisBtn) mirrorAxisGrp.addButton(self.zAxisBtn) self.translateBtn = QtWidgets.QPushButton('Translate') self.translateBtn.setCheckable(True) self.translateBtn.setChecked(True) self.rotateBtn = QtWidgets.QPushButton('Rotate') self.rotateBtn.setMinimumWidth(self.translateBtn.sizeHint().width()) self.rotateBtn.setCheckable(True) self.rotateBtn.setChecked(True) self.scaleBtn = QtWidgets.QPushButton('Scale') self.scaleBtn.setMinimumWidth(self.translateBtn.sizeHint().width()) self.scaleBtn.setCheckable(True) self.scaleBtn.setChecked(True) self.mirrorAxisAddBtn = QtWidgets.QPushButton('+') self.mirrorAxisAddBtn.setToolTip( 'Add the selected node as the axis to mirror across.') self.mirrorAxisRemoveBtn = QtWidgets.QPushButton('x') self.mirrorAxisRemoveBtn.setToolTip( 'Set mirroring to mirror across the origin.') self.mirrorAxisField = QtWidgets.QLineEdit('origin') self.mirrorAxisField.setMinimumHeight( self.mirrorAxisAddBtn.sizeHint().height()) self.mirrorAxisField.setReadOnly(True) mirrorModeLayout = QtWidgets.QHBoxLayout() mirrorModeLayout.setAlignment(QtCore.Qt.AlignLeft) mirrorModeLayout.setSpacing(1) mirrorModeLayout.setContentsMargins(0, 0, 0, 0) mirrorModeLayout.addWidget(self.selectionBtn) mirrorModeLayout.addWidget(self.rigBtn) mirrorTypeLayout = QtWidgets.QHBoxLayout() mirrorTypeLayout.setAlignment(QtCore.Qt.AlignLeft) mirrorTypeLayout.setSpacing(1) mirrorTypeLayout.setContentsMargins(0, 0, 0, 0) mirrorTypeLayout.addWidget(self.mirrorTypeCombo) mirrorDirLayout = QtWidgets.QHBoxLayout() mirrorDirLayout.setAlignment(QtCore.Qt.AlignLeft) mirrorDirLayout.setSpacing(1) mirrorDirLayout.setContentsMargins(0, 0, 0, 0) mirrorDirLayout.addWidget(self.xAxisBtn) mirrorDirLayout.addWidget(self.yAxisBtn) mirrorDirLayout.addWidget(self.zAxisBtn) mirrorTRSLayout = QtWidgets.QHBoxLayout() mirrorTRSLayout.setSpacing(1) mirrorTRSLayout.setContentsMargins(0, 0, 0, 0) mirrorTRSLayout.addWidget(self.translateBtn) mirrorTRSLayout.addWidget(self.rotateBtn) mirrorTRSLayout.addWidget(self.scaleBtn) mirrorAxisLayout = QtWidgets.QHBoxLayout() mirrorAxisLayout.setSpacing(1) mirrorAxisLayout.setContentsMargins(0, 0, 0, 0) mirrorAxisLayout.addWidget(self.mirrorAxisField) mirrorAxisLayout.addWidget(self.mirrorAxisAddBtn) mirrorAxisLayout.addWidget(self.mirrorAxisRemoveBtn) mirrorSettingsLayout = QtWidgets.QFormLayout() mirrorSettingsLayout.setSpacing(1) mirrorSettingsLayout.setContentsMargins(5, 5, 5, 10) mirrorSettingsLayout.setFieldGrowthPolicy( QtWidgets.QFormLayout.ExpandingFieldsGrow) mirrorSettingsLayout.setLabelAlignment(QtCore.Qt.AlignLeft) mirrorSettingsLayout.addRow('Mirror Mode:', mirrorModeLayout) mirrorSettingsLayout.addRow('Mirror Type:', mirrorTypeLayout) mirrorSettingsLayout.addRow('Mirror TRS:', mirrorTRSLayout) mirrorSettingsLayout.addRow('Mirror Direction:', mirrorDirLayout) mirrorSettingsLayout.addRow('Mirror Across:', mirrorAxisLayout) mirrorSettingsGrp = QtWidgets.QGroupBox('') mirrorSettingsGrp.setLayout(mirrorSettingsLayout) # mirror functions self.mirrorBtn = QtWidgets.QPushButton('Mirror') self.mirrorBtn.setToolTip('Mirror based on the settings above. ') self.flipBtn = QtWidgets.QPushButton('Flip') self.flipBtn.setToolTip( 'Flip poses based on the settings above. Will flip non-mirror nodes in place.' ) self.flipCenteredBtn = QtWidgets.QPushButton('Flip Centered') self.flipCenteredBtn.setToolTip( 'Flip the selected non-mirror nodes in place.') mirrorFunctionsLayout = QtWidgets.QVBoxLayout() mirrorFunctionsLayout.setSpacing(1) mirrorFunctionsLayout.setContentsMargins(5, 5, 5, 10) mirrorFunctionsLayout.addWidget(self.mirrorBtn) mirrorFunctionsLayout.addWidget(self.flipBtn) mirrorFunctionsLayout.addWidget(self.flipCenteredBtn) mirrorFunctionsGrp = QtWidgets.QGroupBox('') mirrorFunctionsGrp.setLayout(mirrorFunctionsLayout) # top layout mainLayout = QtWidgets.QVBoxLayout() mainLayout.setAlignment(QtCore.Qt.AlignTop) mainLayout.setSpacing(5) mainLayout.setContentsMargins(0, 0, 0, 0) mainLayout.addWidget(mirrorSettingsGrp) mainLayout.addWidget(mirrorFunctionsGrp) self.setLayout(mainLayout) self.setObjectName('AnimMirrorToolsView') self.setWindowTitle('Anim Mirror Tools') self.mirrorBtn.clicked.connect(self.mirror) self.flipBtn.clicked.connect(self.flip) self.flipCenteredBtn.clicked.connect(self.flipCentered) self.mirrorAxisAddBtn.clicked.connect(self.addMirrorAxisNode) self.mirrorAxisRemoveBtn.clicked.connect(self.removeMirrorAxisNode)
def __init__(self, parent, tab=0): """Constructor for the OpenDialog.""" super().__init__(parent) self.setWindowTitle(self.tr("Open Simulation")) self.setMinimumWidth(800) self.setMinimumHeight(800) m = 5 containerLayout = QtWidgets.QHBoxLayout() containerLayout.setContentsMargins(m, m, m, m) self.setLayout(containerLayout) # ======================================== # Left Bar + navigation self.leftBar = QtWidgets.QVBoxLayout() self.leftBar.setContentsMargins(0, 0, 0, 0) containerLayout.addLayout(self.leftBar) self.buttGroup = QtWidgets.QButtonGroup() self.buttGroup.setExclusive(True) self.leftBar.addWidget(self._make_nav_button(self.tr("Sims"), NAV.sims)) self.leftBar.addWidget( self._make_nav_button(self.tr("Recent"), NAV.recent)) self.leftBar.addWidget( self._make_nav_button(self.tr("Browse"), NAV.filesystem)) self.leftBar.addWidget( self._make_nav_button(self.tr("Network"), NAV.network)) self.leftBar.addStretch(20) # ================================================================================== # Stack widget for main mainLayout = QtWidgets.QVBoxLayout() mainLayout.setContentsMargins(0, 0, 0, 0) containerLayout.addLayout(mainLayout) self.stackWidget = QtWidgets.QStackedWidget() mainLayout.addWidget(self.stackWidget, 200) # ================= # Downloaded Sims self.downloadWidget = QtWidgets.QWidget() self.downloadLayout = QtWidgets.QVBoxLayout() self.downloadLayout.setContentsMargins(0, 0, 0, 0) self.downloadWidget.setLayout(self.downloadLayout) self.stackWidget.addWidget(self.downloadWidget) tbBrowse = QtWidgets.QToolBar() self.downloadLayout.addWidget(tbBrowse) self.txtUrl = QtWidgets.QLineEdit(self) self.txtUrl.setText(ts2.get_info().get('simulations_repo')) tbBrowse.addWidget(self.txtUrl) self.buttDownload = tbBrowse.addAction(self.tr("Download"), self.onDownload) self.treeSims = QtWidgets.QTreeWidget() self.downloadLayout.addWidget(self.treeSims) hitem = self.treeSims.headerItem() hitem.setText(C.name, "Name") hitem.setText(C.description, "Description") hitem.setText(C.file_name, "File") hitem.setText(C.file_path, "Path") self.treeSims.setColumnHidden(C.file_path, True) self.treeSims.header().setStretchLastSection(True) self.treeSims.itemDoubleClicked.connect(self.onTreeSimsItemDblClicked) # ===================================== # Recent self.treeRecent = QtWidgets.QTreeWidget() self.stackWidget.addWidget(self.treeRecent) hitem = self.treeRecent.headerItem() hitem.setText(0, "Path") self.treeRecent.itemDoubleClicked.connect( self.onTreeRecentItemDblClicked) # ===================================== # Browse self.filesModel = QtWidgets.QFileSystemModel() self.filesModel.setRootPath(QtCore.QDir.homePath()) self.filesModel.setNameFilters(["*.ts2", "*.json"]) self.filesModel.setNameFilterDisables(False) self.treeFiles = QtWidgets.QTreeView() self.treeFiles.setModel(self.filesModel) self.treeFiles.setColumnWidth(0, 300) self.treeFiles.setExpanded( self.filesModel.index(QtCore.QDir.homePath()), True) path = QtCore.QDir.home() while path.cdUp(): self.treeFiles.setExpanded(self.filesModel.index(path.path()), True) self.stackWidget.addWidget(self.treeFiles) self.treeFiles.doubleClicked.connect(self.onTreeBrowseItemDblClicked) # ================================= # Network self.networkWidget = QtWidgets.QWidget() self.networkLayout = QtWidgets.QVBoxLayout() self.networkLayout.setContentsMargins(0, 0, 0, 0) self.networkWidget.setLayout(self.networkLayout) self.stackWidget.addWidget(self.networkWidget) networkLabel = QtWidgets.QLabel( self.tr("Connect to simulation server")) networkLabel.setStyleSheet("font-size: 15px; font-weight: bold;") labelLayout = QtWidgets.QHBoxLayout() labelLayout.addStretch(1) labelLayout.addWidget(networkLabel) labelLayout.addStretch(1) self.networkLayout.addLayout(labelLayout) tbNetworkBarLayout = QtWidgets.QHBoxLayout() self.networkLayout.addLayout(tbNetworkBarLayout) tbNetworkBarLayout.addWidget(QtWidgets.QLabel(self.tr("Host:"))) self.networkServer = QtWidgets.QLineEdit(self) self.networkServer.setText("localhost") tbNetworkBarLayout.addWidget(self.networkServer, 2) tbNetworkBarLayout.addWidget(QtWidgets.QLabel(self.tr("Port:"))) self.networkPort = QtWidgets.QLineEdit(self) self.networkPort.setInputMask("00000") self.networkPort.setText("22222") tbNetworkBarLayout.addWidget(self.networkPort, 1) self.connectAction = QtWidgets.QAction(self.tr("Connect")) self.connectAction.triggered.connect(self.onConnect) btn = QtWidgets.QToolButton() btn.setDefaultAction(self.connectAction) self.buttConnect = tbNetworkBarLayout.addWidget(btn) self.networkLayout.addStretch(1) # ================================= # Bottom status self.statusBar = widgets.StatusBar() mainLayout.addWidget(self.statusBar, 0) if settings.debug: self.statusBar.showMessage(settings.simulationsDir) self.buttGroup.buttonToggled.connect(self.onNavButtClicked) self.buttGroup.button(tab).setChecked(True)
def _build(self): self.setMaximumWidth(240) _layout = QtWidgets.QVBoxLayout(self) _layout.setSpacing(0) _layout.setContentsMargins(0,0,0,0) # # asset task step # self.step_widget = QtWidgets.QFrame() # _layout.addWidget(self.step_widget) # self.step_layout = QtWidgets.QVBoxLayout(self.step_widget) # self.step_layout.setSpacing(0) # self.step_layout.setContentsMargins(0,0,0,0) # self.tab_widget = QtWidgets.QTabWidget() # self.step_layout.addWidget(self.tab_widget) # self.tab_widget.setStyleSheet("QTabBar::tab{height:24px;}") # asset frame self.asset_widget = QtWidgets.QFrame() # self.tab_widget.addTab(self.asset_widget, u"资产") _layout.addWidget(self.asset_widget) self.asset_layout = QtWidgets.QVBoxLayout(self.asset_widget) self.asset_layout.setSpacing(0) self.asset_layout.setContentsMargins(0,0,0,0) self.asset_step_name_button = QtWidgets.QPushButton() self.asset_step_name_button.setObjectName("title_button") self.asset_step_name_button.setMaximumHeight(25) self.asset_step_name_button.setText(language.word("asset")) self.asset_step_name_button.setIcon(QtGui.QIcon(resource.get("icons","asset.png"))) self.asset_layout.addWidget(self.asset_step_name_button) self.asset_step_checkbox_widget = QtWidgets.QFrame() self.asset_step_checkbox_layout = QtWidgets.QVBoxLayout(self.asset_step_checkbox_widget) self.asset_step_checkbox_layout.setContentsMargins(20,0,0,0) self.asset_layout.addWidget(self.asset_step_checkbox_widget) self.asset_layout.addStretch(True) # assembly self.assembly_widget = QtWidgets.QFrame() # self.tab_widget.addTab(self.assembly_widget, u"场景") _layout.addWidget(self.assembly_widget) self.assembly_layout = QtWidgets.QVBoxLayout(self.assembly_widget) self.assembly_layout.setSpacing(0) self.assembly_layout.setContentsMargins(0,0,0,0) self.assembly_step_name_button = QtWidgets.QPushButton() self.assembly_step_name_button.setObjectName("title_button") self.assembly_step_name_button.setMaximumHeight(25) self.assembly_step_name_button.setText(language.word("assembly")) self.assembly_step_name_button.setIcon(QtGui.QIcon(resource.get("icons","assembly.png"))) self.assembly_layout.addWidget(self.assembly_step_name_button) self.assembly_step_checkbox_widget = QtWidgets.QFrame() self.assembly_step_checkbox_layout = QtWidgets.QVBoxLayout(self.assembly_step_checkbox_widget) self.assembly_step_checkbox_layout.setContentsMargins(20,0,0,0) self.assembly_layout.addWidget(self.assembly_step_checkbox_widget) self.assembly_layout.addStretch(True) # sequence self.sequence_widget = QtWidgets.QFrame() # self.tab_widget.addTab(self.sequence_widget, u"场次") _layout.addWidget(self.sequence_widget) self.sequence_layout = QtWidgets.QVBoxLayout(self.sequence_widget) self.sequence_layout.setSpacing(0) self.sequence_layout.setContentsMargins(0,0,0,0) self.sequence_step_name_button = QtWidgets.QPushButton() self.sequence_step_name_button.setObjectName("title_button") self.sequence_step_name_button.setMaximumHeight(25) self.sequence_step_name_button.setText(language.word("sequence")) self.sequence_step_name_button.setIcon(QtGui.QIcon(resource.get("icons","sequence.png"))) self.sequence_layout.addWidget(self.sequence_step_name_button) self.sequence_step_checkbox_widget = QtWidgets.QFrame() self.sequence_step_checkbox_layout = QtWidgets.QVBoxLayout(self.sequence_step_checkbox_widget) self.sequence_step_checkbox_layout.setContentsMargins(20,0,0,0) self.sequence_layout.addWidget(self.sequence_step_checkbox_widget) self.sequence_layout.addStretch(True) # shot self.shot_widget = QtWidgets.QFrame() # self.tab_widget.addTab(self.shot_widget, u"镜头") _layout.addWidget(self.shot_widget) self.shot_layout = QtWidgets.QVBoxLayout(self.shot_widget) self.shot_layout.setSpacing(0) self.shot_layout.setContentsMargins(0,0,0,0) self.shot_step_name_button = QtWidgets.QPushButton() self.shot_step_name_button.setObjectName("title_button") self.shot_step_name_button.setMaximumHeight(25) self.shot_step_name_button.setText(language.word("shot")) self.shot_step_name_button.setIcon(QtGui.QIcon(resource.get("icons","shot.png"))) self.shot_layout.addWidget(self.shot_step_name_button) self.shot_step_checkbox_widget = QtWidgets.QFrame() self.shot_step_checkbox_layout = QtWidgets.QVBoxLayout(self.shot_step_checkbox_widget) self.shot_step_checkbox_layout.setContentsMargins(20,0,0,0) self.shot_layout.addWidget(self.shot_step_checkbox_widget) self.shot_layout.addStretch(True) # # step checkbox widget # self.step_checkbox_widget = QtWidgets.QFrame() # self.step_checkbox_layout = QtWidgets.QVBoxLayout(self.step_checkbox_widget) # self.step_checkbox_layout.setContentsMargins(20,0,0,0) self.step_group = QtWidgets.QButtonGroup(self) # self.step_layout.addWidget(self.step_checkbox_widget) _layout.addStretch(True)
def _build(self): self.setMaximumWidth(200) _layout = QtWidgets.QVBoxLayout(self) _layout.setSpacing(0) _layout.setContentsMargins(0, 0, 0, 0) # asset task step self.step_widget = QtWidgets.QFrame() _layout.addWidget(self.step_widget) self.step_layout = QtWidgets.QVBoxLayout(self.step_widget) self.step_layout.setSpacing(0) self.step_layout.setContentsMargins(0, 0, 0, 0) # asset self.asset_step_name_button = QtWidgets.QPushButton() self.asset_step_name_button.setObjectName("title_button") self.asset_step_name_button.setMaximumHeight(25) self.asset_step_name_button.setText(language.word("asset")) self.asset_step_name_button.setIcon( QtGui.QIcon(resource.get("icons", "asset.png"))) self.step_layout.addWidget(self.asset_step_name_button) self.asset_step_checkbox_widget = QtWidgets.QFrame() self.asset_step_checkbox_layout = QtWidgets.QVBoxLayout( self.asset_step_checkbox_widget) self.asset_step_checkbox_layout.setContentsMargins(20, 0, 0, 0) self.step_layout.addWidget(self.asset_step_checkbox_widget) # assembly self.assembly_step_name_button = QtWidgets.QPushButton() self.assembly_step_name_button.setObjectName("title_button") self.assembly_step_name_button.setMaximumHeight(25) self.assembly_step_name_button.setText(language.word("assembly")) self.assembly_step_name_button.setIcon( QtGui.QIcon(resource.get("icons", "assembly.png"))) self.step_layout.addWidget(self.assembly_step_name_button) self.assembly_step_checkbox_widget = QtWidgets.QFrame() self.assembly_step_checkbox_layout = QtWidgets.QVBoxLayout( self.assembly_step_checkbox_widget) self.assembly_step_checkbox_layout.setContentsMargins(20, 0, 0, 0) self.step_layout.addWidget(self.assembly_step_checkbox_widget) # sequence self.sequence_step_name_button = QtWidgets.QPushButton() self.sequence_step_name_button.setObjectName("title_button") self.sequence_step_name_button.setMaximumHeight(25) self.sequence_step_name_button.setText(language.word("sequence")) self.sequence_step_name_button.setIcon( QtGui.QIcon(resource.get("icons", "sequence.png"))) self.step_layout.addWidget(self.sequence_step_name_button) self.sequence_step_checkbox_widget = QtWidgets.QFrame() self.sequence_step_checkbox_layout = QtWidgets.QVBoxLayout( self.sequence_step_checkbox_widget) self.sequence_step_checkbox_layout.setContentsMargins(20, 0, 0, 0) self.step_layout.addWidget(self.sequence_step_checkbox_widget) # shot self.shot_step_name_button = QtWidgets.QPushButton() self.shot_step_name_button.setObjectName("title_button") self.shot_step_name_button.setMaximumHeight(25) self.shot_step_name_button.setText(language.word("shot")) self.shot_step_name_button.setIcon( QtGui.QIcon(resource.get("icons", "shot.png"))) self.step_layout.addWidget(self.shot_step_name_button) self.shot_step_checkbox_widget = QtWidgets.QFrame() self.shot_step_checkbox_layout = QtWidgets.QVBoxLayout( self.shot_step_checkbox_widget) self.shot_step_checkbox_layout.setContentsMargins(20, 0, 0, 0) self.step_layout.addWidget(self.shot_step_checkbox_widget) # # step checkbox widget # self.step_checkbox_widget = QtWidgets.QFrame() # self.step_checkbox_layout = QtWidgets.QVBoxLayout(self.step_checkbox_widget) # self.step_checkbox_layout.setContentsMargins(20,0,0,0) self.step_group = QtWidgets.QButtonGroup(self) # self.step_layout.addWidget(self.step_checkbox_widget) _layout.addStretch(True)