def __init__(self, view): self.bookmarks = CameraBookmarks(view) self.widget = QtGui.QScrollArea() self.widget.setWindowTitle('Camera Bookmarks') self.storeMapper = QtCore.QSignalMapper() self.flyMapper = QtCore.QSignalMapper() self.storeMapper.connect('mapped(QObject*)', self.onStoreCamera) self.flyMapper.connect('mapped(QObject*)', self.onFlyToCamera) self.numberOfBookmarks = 8 self.updateLayout()
def buildTabWidget(self, jointGroups): self.slidersMap = {} self.labelMap = {} for group in jointGroups: groupName = group['name'] joints = group['joints'] labels = group['labels'] if groupName.lower() == 'base': continue if len(labels) != len(joints): print 'error, joints/labels mismatch for joint group:', name continue jointGroupWidget = QtGui.QWidget() gridLayout = QtGui.QGridLayout(jointGroupWidget) gridLayout.setColumnStretch(0, 1) for jointName, labelText in zip(joints, labels): label = QtGui.QLabel(labelText) numericLabel = QtGui.QLabel('0.0') slider = QtGui.QSlider(QtCore.Qt.Vertical) column = gridLayout.columnCount() gridLayout.addWidget(label, 0, column) gridLayout.addWidget(slider, 1, column) gridLayout.addWidget(numericLabel, 2, column) self.slidersMap[jointName] = slider self.labelMap[slider] = numericLabel gridLayout.setColumnStretch(gridLayout.columnCount(), 1) self.widget.addTab(jointGroupWidget, groupName) self.widget.usesScrollButtons = False self.signalMapper = QtCore.QSignalMapper() self.sliderMax = 1000.0 for jointName, slider in self.slidersMap.iteritems(): slider.connect('valueChanged(int)', self.signalMapper, 'map()') self.signalMapper.setMapping(slider, jointName) slider.setMaximum(self.sliderMax) self.signalMapper.connect('mapped(const QString&)', self.sliderChanged)