def addSeparator(self, name=None): separatorEditor = QtWidgets.QFrame(self.paramsGroup) separatorEditor.setFrameShape(QtWidgets.QFrame.HLine) separatorEditor.setObjectName('separatorFrame') if name is not None: labelEditor = QtWidgets.QLabel(name, self.paramsGroup) labelEditor.setObjectName('separatorLabel') self.paramsLayout.addWidget(labelEditor, self.gridRow, 0) self.paramsLayout.addWidget(separatorEditor, self.gridRow, 1, QtCore.Qt.AlignBottom) self.gridRow += 1 else: self.paramsLayout.addWidget(separatorEditor, self.gridRow, 0, 1, 2) self.gridRow += 1
def createLayout(self): # Parent Layout self._topLayout = QtWidgets.QVBoxLayout() self._topLayout.setContentsMargins(0, 0, 0, 0) self._topLayout.setSpacing(0) self._mainWidget = QtWidgets.QWidget() self._mainWidget.setObjectName('mainPrefWidget') # Main Layout self._mainLayout = QtWidgets.QVBoxLayout(self._mainWidget) self._mainLayout.setContentsMargins(0, 0, 0, 0) self._mainLayout.setSpacing(0) self._preferenceLayout = QtWidgets.QGridLayout() self._preferenceLayout.setContentsMargins(10, 10, 10, 10) self._preferenceLayout.setSpacing(3) self._preferenceLayout.setColumnMinimumWidth(0, 200) self._preferenceLayout.setColumnStretch(0, 1) self._preferenceLayout.setColumnStretch(1, 2) # Add widgets based on type here preferences = self.parentWidget().window().preferences.getPreferences() i = 0 for k, v in preferences.iteritems(): labelFrameWidget = QtWidgets.QFrame() labelFrameWidget.setObjectName('prefLabelWidgetFrame') labelFrameWidget.setFrameStyle(QtWidgets.QFrame.NoFrame | QtWidgets.QFrame.Plain) labelFrameWidget.setToolTip(v['description']) labelFrameLayout = QtWidgets.QHBoxLayout() prefLabel = QtWidgets.QLabel(v['nice_name'], self) prefLabel.setProperty('labelClass', 'preferenceLabel') prefLabel.setObjectName(k + "_label") prefLabel.setSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) prefLabel.setMinimumWidth(200) labelFrameLayout.addWidget(prefLabel) labelFrameWidget.setLayout(labelFrameLayout) self._preferenceLayout.addWidget(labelFrameWidget, i, 0) if v['type'] == 'bool': valueFrameWidget = QtWidgets.QFrame() valueFrameWidget.setObjectName('prefValueWidgetFrame') valueFrameWidget.setFrameStyle(QtWidgets.QFrame.NoFrame | QtWidgets.QFrame.Plain) valueFrameLayout = QtWidgets.QHBoxLayout() valueWidget = QtWidgets.QCheckBox(self) valueWidget.setObjectName(k + "_valueWidget") valueWidget.setChecked(v['value']) valueFrameLayout.addWidget(valueWidget) valueFrameWidget.setLayout(valueFrameLayout) self._preferenceLayout.addWidget(valueFrameWidget, i, 1, 1, 1) self.prefValueWidgets.append(valueWidget) i += 1 # OK and Cancel buttons buttonLayout = QtWidgets.QHBoxLayout() buttonLayout.setContentsMargins(10, 10, 10, 10) buttons = QtWidgets.QDialogButtonBox( QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel, QtCore.Qt.Horizontal, self) buttons.accepted.connect(self.accept) buttons.rejected.connect(self.reject) buttonLayout.addWidget(buttons) # Menu Bar self.menu_bar = QtWidgets.QMenuBar() self.file_menu = self.menu_bar.addMenu('&File') self.importPrefAction = self.file_menu.addAction('&Import...') self.exportPrefAction = self.file_menu.addAction('&Export...') self._mainLayout.addWidget(self.menu_bar) self._mainLayout.addLayout(self._preferenceLayout) self._mainLayout.addStretch(1) self._mainLayout.addLayout(buttonLayout) self._topLayout.addWidget(self._mainWidget) self.setLayout(self._topLayout)
def createLayout(self): self.menuLayout = QtWidgets.QHBoxLayout() self.menuLayout.setContentsMargins(0, 0, 0, 0) self.menuLayout.setSpacing(0) # Menu self.menuBar = QtWidgets.QMenuBar() # File Menu self.fileMenu = self.menuBar.addMenu('&File') self.newAction = self.fileMenu.addAction('&New') self.newAction.setShortcut('Ctrl+N') self.newAction.setObjectName("newAction") self.openAction = self.fileMenu.addAction('&Open...') self.openAction.setShortcut('Ctrl+O') self.openAction.setObjectName("openAction") self.saveAction = self.fileMenu.addAction('&Save') self.saveAction.setShortcut('Ctrl+S') self.saveAction.setObjectName("saveAction") self.saveAsAction = self.fileMenu.addAction('&Save As...') self.saveAsAction.setShortcut('Ctrl+Shift+S') self.saveAsAction.setObjectName("saveAsAction") self.fileMenu.addSeparator() self.recentFilesMenu = QtWidgets.QMenu(title='&Recent Files', parent=self.fileMenu) self.fileMenu.addMenu(self.recentFilesMenu) self.fileMenu.addSeparator() self.closeAction = self.fileMenu.addAction('&Close') self.closeAction.setShortcut('Ctrl+W') self.closeAction.setObjectName("closeAction") # Edit Menu self.editMenu = self.menuBar.addMenu('&Edit') self.copyAction = self.editMenu.addAction('&Copy') self.copyAction.setShortcut('Ctrl+C') self.pasteAction = self.editMenu.addAction('&Paste') self.pasteAction.setShortcut('Ctrl+V') self.pasteConnectedAction = self.editMenu.addAction('Paste Connected') self.pasteConnectedAction.setShortcut( QtGui.QKeySequence(QtCore.Qt.CTRL + QtCore.Qt.SHIFT + QtCore.Qt.Key_V)) self.editMenu.addSeparator() self.pasteMirroredAction = self.editMenu.addAction('Paste Mirrored') self.pasteMirroredConnectedAction = self.editMenu.addAction( 'Paste Mirrored Connected') self.editMenu.addSeparator() self.editAddBackdropAction = self.editMenu.addAction('Add &Backdrop') self.editMenu.addSeparator() self.editRigNameAction = self.editMenu.addAction('&Rig Name') self.editRigNameAction.setObjectName("editRigNameAction") self.editMenu.addSeparator() self.editPreferencesAction = self.editMenu.addAction('&Preferences...') self.editPreferencesAction.setObjectName("editPreferencesAction") # Build Menu self.buildMenu = self.menuBar.addMenu('&Build') self.buildGuideAction = self.buildMenu.addAction('Build &Guide') self.buildGuideAction.setShortcut('Ctrl+G') self.buildGuideAction.setObjectName("buildGuideAction") self.buildRigAction = self.buildMenu.addAction('Build &Rig') self.buildRigAction.setShortcut('Ctrl+B') self.buildRigAction.setObjectName("buildRigAction") # Tools Menu self.toolsMenu = self.menuBar.addMenu('&Tools') self.reloadComponentsAction = self.toolsMenu.addAction( 'Reload Component Modules') self.reloadComponentsAction.setShortcut('Ctrl+Shift+R') # View Menu self.viewMenu = self.menuBar.addMenu('&View') self.compLibAction = self.viewMenu.addAction('Component &Library') self.compLibAction.setShortcut('Ctrl+Tab') self.snapToGridAction = self.viewMenu.addAction('&Snap To Grid') self.snapToGridAction.setCheckable(True) # Help Menu self.helpMenu = self.menuBar.addMenu('&Help') self.krakenWebSiteAction = self.helpMenu.addAction('Kraken Web Site') self.krakenDocumentationAction = self.helpMenu.addAction( 'Kraken Documentation') self.fabricForumsAction = self.helpMenu.addAction('Fabric Forums') self.helpMenu.addSeparator() self.aboutKrakenAction = self.helpMenu.addAction('About Kraken') # Logo logoWidget = QtWidgets.QLabel() logoWidget.setObjectName('logoWidget') logoWidget.setMinimumHeight(20) logoWidget.setMinimumWidth(110) logoPixmap = QtGui.QPixmap(':/images/KrakenUI_Logo.png') logoWidget.setPixmap(logoPixmap) # Config Widget self.configsParent = QtWidgets.QFrame(self) self.configsParent.setObjectName('configParent') self.configsParent.setFrameStyle(QtWidgets.QFrame.NoFrame) self.configsParent.setMinimumWidth(160) self.configsLayout = QtWidgets.QVBoxLayout() self.configsLayout.setContentsMargins(0, 0, 0, 0) self.configsLayout.setSpacing(0) self.configsWidget = QtWidgets.QComboBox() self.configsWidget.setAutoFillBackground(True) self.configsWidget.setObjectName('configWidget') self.configsWidget.setMinimumWidth(160) self.configsWidget.addItem('Default Config', userData='Default Config') self.configsLayout.addWidget(self.configsWidget) self.configsParent.setLayout(self.configsLayout) configs = KrakenSystem.getInstance().getConfigClassNames() for config in configs: self.configsWidget.addItem(config.split('.')[-1], userData=config) self.rigNameLabel = RigNameLabel('Rig Name:') # Add Widgets self.menuLayout.addWidget(logoWidget, 0) self.menuLayout.addWidget(self.menuBar, 3) self.menuLayout.addWidget(self.configsParent, 0) self.menuLayout.addWidget(self.rigNameLabel, 0) self.setLayout(self.menuLayout)