def __init__(self, human): super(HumanObjectSelector, self).__init__() self.human = human self._selected = 'skin' self.layout = gui.QtGui.QGridLayout(self) self.objectSelector = [] self.humanBox = gui.GroupBox('Human') self.layout.addWidget(self.humanBox) self.skinRadio = self.humanBox.addWidget( gui.RadioButton(self.objectSelector, "Skin", selected=True)) self.skinRadio.selectionName = 'skin' for pType in proxy.SimpleProxyTypes: self._addSelectorItem(pType.lower(), pType, self.humanBox, False) @self.skinRadio.mhEvent def onClicked(event): if self.skinRadio.selected: self.selected = 'skin' self.callEvent('onActivate', self.selected) self.humanObjectCount = len(self.objectSelector) self.clothesBox = gui.GroupBox('Clothes') self.layout.addWidget(self.clothesBox)
def __init__(self, path, extension, previewExtensions='bmp', notFoundImage=None, sort=FileSort()): super(FileChooser, self).__init__() gui.Widget.__init__(self) self.paths = None self.extension = extension self.setPreviewExtensions(previewExtensions) self.sort = sort self.selection = '' self.childY = {} self.notFoundImage = notFoundImage self.sortBy = self.sort.fields()[0] self.sortgroup = [] self.layout = QtGui.QGridLayout(self) self.sortBox = gui.GroupBox('Sort') self.layout.addWidget(self.sortBox, 0, 0) self.layout.setRowStretch(0, 0) self.layout.setColumnStretch(0, 0) self.layout.addWidget(QtGui.QWidget(), 1, 0) self.files_sc = QtGui.QScrollArea() self.files_sc.setHorizontalScrollBarPolicy( QtCore.Qt.ScrollBarAlwaysOff) self.files_sc.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) self.layout.addWidget(self.files_sc, 0, 1, 2, -1) self.layout.setRowStretch(1, 1) self.layout.setColumnStretch(1, 1) self.files = QtGui.QWidget() self.files_sc.installEventFilter(self) self.files_sc.setWidget(self.files) self.files_sc.setWidgetResizable(True) self.children = FlowLayout(self.files) self.children.setSizeConstraint(QtGui.QLayout.SetMinimumSize) self.location = gui.TextView('') self.layout.addWidget(self.location, 2, 0, 1, -1) self.layout.setRowStretch(2, 0) self.refreshButton = self.sortBox.addWidget(gui.Button('Refresh')) for i, field in enumerate(self.sort.fields()): self.sortBox.addWidget( FileSortRadioButton(self, self.sortgroup, i == 0, field)) self.setPaths(path) @self.refreshButton.mhEvent def onClicked(value): self.refresh()
def __init__(self, path, extensions, name="File chooser", multiSelect=False, verticalScrolling=False, sort=FileSort(), noneItem=False, doNotRecurse=False): super(ListFileChooser, self).__init__(path, extensions, sort, doNotRecurse) self.listItems = [] self.multiSelect = multiSelect self.noneItem = noneItem self.layout = QtWidgets.QGridLayout(self) self.mainBox = gui.GroupBox(name) self.children = gui.ListView() if self.multiSelect: self.children.allowMultipleSelection(True) self.layout.addWidget(self.mainBox) self.mainBox.addWidget(self.children) self.layout.setSpacing(0) self.layout.setContentsMargins(0, 0, 0, 0) self.children.setSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.MinimumExpanding) self.children.setHorizontalScrollBarPolicy( QtCore.Qt.ScrollBarAlwaysOff) self.children.setVerticalScrollingEnabled(verticalScrolling) # Remove frame and background color from list widget (native theme) self.children.setFrameShape(QtWidgets.QFrame.NoFrame) palette = QtGui.QPalette() palette.setColor(QtGui.QPalette.Base, QtGui.QColor(255, 255, 255, 0)) self.children.setPalette(palette) @self.children.mhEvent def onClicked(item): self.callEvent('onFileSelected', self.loadHandler.getSelection(item)) @self.children.mhEvent def onItemChecked(item): self.callEvent('onFileSelected', self.loadHandler.getSelection(item)) @self.children.mhEvent def onItemUnchecked(item): self.callEvent('onFileDeselected', self.loadHandler.getSelection(item)) @self.children.mhEvent def onClearSelection(value): self.callEvent('onDeselectAll', None)
def createSortBox(self): sortBox = gui.GroupBox('Sort') self.refreshButton = sortBox.addWidget(gui.Button('Refresh')) for i, field in enumerate(self.sort.fields()): sortBox.addWidget(FileSortRadioButton(self, self.sortgroup, i == 0, field)) @self.refreshButton.mhEvent def onClicked(value): self.refresh() return sortBox