def createToolBox(self): self.buttonGroup = QtGui.QButtonGroup() self.buttonGroup.setExclusive(False) self.buttonGroup.buttonClicked[int].connect(self.buttonGroupClicked) layout = QtGui.QGridLayout() layout.addWidget(self.createCellWidget("Conditional", DiagramItem.Conditional), 0, 0) layout.addWidget(self.createCellWidget("Process", DiagramItem.Step), 0, 1) layout.addWidget(self.createCellWidget("Input/Output", DiagramItem.Io), 1, 0) textButton = QtGui.QToolButton() textButton.setCheckable(True) self.buttonGroup.addButton(textButton, self.InsertTextButton) textButton.setIcon(QtGui.QIcon(QtGui.QPixmap(':/images/textpointer.png') .scaled(30, 30))) textButton.setIconSize(QtCore.QSize(50, 50)) textLayout = QtGui.QGridLayout() textLayout.addWidget(textButton, 0, 0, QtCore.Qt.AlignHCenter) textLayout.addWidget(QtGui.QLabel("Text"), 1, 0, QtCore.Qt.AlignCenter) textWidget = QtGui.QWidget() textWidget.setLayout(textLayout) layout.addWidget(textWidget, 1, 1) layout.setRowStretch(3, 10) layout.setColumnStretch(2, 10) itemWidget = QtGui.QWidget() itemWidget.setLayout(layout) self.backgroundButtonGroup = QtGui.QButtonGroup() self.backgroundButtonGroup.buttonClicked.connect(self.backgroundButtonGroupClicked) backgroundLayout = QtGui.QGridLayout() backgroundLayout.addWidget(self.createBackgroundCellWidget("Blue Grid", ':/images/background1.png'), 0, 0) backgroundLayout.addWidget(self.createBackgroundCellWidget("White Grid", ':/images/background2.png'), 0, 1) backgroundLayout.addWidget(self.createBackgroundCellWidget("Gray Grid", ':/images/background3.png'), 1, 0) backgroundLayout.addWidget(self.createBackgroundCellWidget("No Grid", ':/images/background4.png'), 1, 1) backgroundLayout.setRowStretch(2, 10) backgroundLayout.setColumnStretch(2, 10) backgroundWidget = QtGui.QWidget() backgroundWidget.setLayout(backgroundLayout) self.toolBox = QtGui.QToolBox() self.toolBox.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Maximum, QtGui.QSizePolicy.Ignored)) self.toolBox.setMinimumWidth(itemWidget.sizeHint().width()) self.toolBox.addItem(itemWidget, "Basic Flowchart Shapes") self.toolBox.addItem(backgroundWidget, "Backgrounds")
def setupUi(self, Form): Form.setObjectName("Form") Form.resize(545, 471) self.gridLayout = QtGui.QGridLayout(Form) self.gridLayout.setObjectName("gridLayout") self.easingCurvePicker = QtGui.QListWidget(Form) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.easingCurvePicker.sizePolicy().hasHeightForWidth()) self.easingCurvePicker.setSizePolicy(sizePolicy) self.easingCurvePicker.setMaximumSize(QtCore.QSize(16777215, 120)) self.easingCurvePicker.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.easingCurvePicker.setMovement(QtGui.QListView.Static) self.easingCurvePicker.setProperty("isWrapping", False) self.easingCurvePicker.setViewMode(QtGui.QListView.IconMode) self.easingCurvePicker.setSelectionRectVisible(False) self.easingCurvePicker.setObjectName("easingCurvePicker") self.gridLayout.addWidget(self.easingCurvePicker, 0, 0, 1, 2) self.verticalLayout = QtGui.QVBoxLayout() self.verticalLayout.setObjectName("verticalLayout") self.groupBox_2 = QtGui.QGroupBox(Form) self.groupBox_2.setObjectName("groupBox_2") self.verticalLayout_2 = QtGui.QVBoxLayout(self.groupBox_2) self.verticalLayout_2.setObjectName("verticalLayout_2") self.lineRadio = QtGui.QRadioButton(self.groupBox_2) self.lineRadio.setChecked(True) self.lineRadio.setObjectName("lineRadio") self.buttonGroup = QtGui.QButtonGroup(Form) self.buttonGroup.setObjectName("buttonGroup") self.buttonGroup.addButton(self.lineRadio) self.verticalLayout_2.addWidget(self.lineRadio) self.circleRadio = QtGui.QRadioButton(self.groupBox_2) self.circleRadio.setObjectName("circleRadio") self.buttonGroup.addButton(self.circleRadio) self.verticalLayout_2.addWidget(self.circleRadio) self.verticalLayout.addWidget(self.groupBox_2) self.groupBox = QtGui.QGroupBox(Form) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.groupBox.sizePolicy().hasHeightForWidth()) self.groupBox.setSizePolicy(sizePolicy) self.groupBox.setObjectName("groupBox") self.formLayout = QtGui.QFormLayout(self.groupBox) self.formLayout.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow) self.formLayout.setObjectName("formLayout") self.label = QtGui.QLabel(self.groupBox) self.label.setObjectName("label") self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.label) self.periodSpinBox = QtGui.QDoubleSpinBox(self.groupBox) self.periodSpinBox.setEnabled(False) self.periodSpinBox.setMinimum(-1.0) self.periodSpinBox.setSingleStep(0.1) self.periodSpinBox.setProperty("value", -1.0) self.periodSpinBox.setObjectName("periodSpinBox") self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.periodSpinBox) self.label_2 = QtGui.QLabel(self.groupBox) self.label_2.setObjectName("label_2") self.formLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.label_2) self.amplitudeSpinBox = QtGui.QDoubleSpinBox(self.groupBox) self.amplitudeSpinBox.setEnabled(False) self.amplitudeSpinBox.setMinimum(-1.0) self.amplitudeSpinBox.setSingleStep(0.1) self.amplitudeSpinBox.setProperty("value", -1.0) self.amplitudeSpinBox.setObjectName("amplitudeSpinBox") self.formLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.amplitudeSpinBox) self.label_3 = QtGui.QLabel(self.groupBox) self.label_3.setObjectName("label_3") self.formLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.label_3) self.overshootSpinBox = QtGui.QDoubleSpinBox(self.groupBox) self.overshootSpinBox.setEnabled(False) self.overshootSpinBox.setMinimum(-1.0) self.overshootSpinBox.setSingleStep(0.1) self.overshootSpinBox.setProperty("value", -1.0) self.overshootSpinBox.setObjectName("overshootSpinBox") self.formLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.overshootSpinBox) self.verticalLayout.addWidget(self.groupBox) spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem) self.gridLayout.addLayout(self.verticalLayout, 1, 0, 1, 1) self.graphicsView = QtGui.QGraphicsView(Form) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.graphicsView.sizePolicy().hasHeightForWidth()) self.graphicsView.setSizePolicy(sizePolicy) self.graphicsView.setObjectName("graphicsView") self.gridLayout.addWidget(self.graphicsView, 1, 1, 1, 1) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form)
def createToolbars(self): self.editToolBar = self.addToolBar("Edit") self.editToolBar.addAction(self.deleteAction) self.editToolBar.addAction(self.toFrontAction) self.editToolBar.addAction(self.sendBackAction) self.fontCombo = QtGui.QFontComboBox() self.fontCombo.currentFontChanged.connect(self.currentFontChanged) self.fontSizeCombo = QtGui.QComboBox() self.fontSizeCombo.setEditable(True) for i in range(8, 30, 2): self.fontSizeCombo.addItem(str(i)) validator = QtGui.QIntValidator(2, 64, self) self.fontSizeCombo.setValidator(validator) self.fontSizeCombo.currentIndexChanged.connect(self.fontSizeChanged) self.fontColorToolButton = QtGui.QToolButton() self.fontColorToolButton.setPopupMode(QtGui.QToolButton.MenuButtonPopup) self.fontColorToolButton.setMenu( self.createColorMenu(self.textColorChanged, QtCore.Qt.black)) self.textAction = self.fontColorToolButton.menu().defaultAction() self.fontColorToolButton.setIcon( self.createColorToolButtonIcon(':/images/textpointer.png', QtCore.Qt.black)) self.fontColorToolButton.setAutoFillBackground(True) self.fontColorToolButton.clicked.connect(self.textButtonTriggered) self.fillColorToolButton = QtGui.QToolButton() self.fillColorToolButton.setPopupMode(QtGui.QToolButton.MenuButtonPopup) self.fillColorToolButton.setMenu( self.createColorMenu(self.itemColorChanged, QtCore.Qt.white)) self.fillAction = self.fillColorToolButton.menu().defaultAction() self.fillColorToolButton.setIcon( self.createColorToolButtonIcon(':/images/floodfill.png', QtCore.Qt.white)) self.fillColorToolButton.clicked.connect(self.fillButtonTriggered) self.lineColorToolButton = QtGui.QToolButton() self.lineColorToolButton.setPopupMode(QtGui.QToolButton.MenuButtonPopup) self.lineColorToolButton.setMenu( self.createColorMenu(self.lineColorChanged, QtCore.Qt.black)) self.lineAction = self.lineColorToolButton.menu().defaultAction() self.lineColorToolButton.setIcon( self.createColorToolButtonIcon(':/images/linecolor.png', QtCore.Qt.black)) self.lineColorToolButton.clicked.connect(self.lineButtonTriggered) self.textToolBar = self.addToolBar("Font") self.textToolBar.addWidget(self.fontCombo) self.textToolBar.addWidget(self.fontSizeCombo) self.textToolBar.addAction(self.boldAction) self.textToolBar.addAction(self.italicAction) self.textToolBar.addAction(self.underlineAction) self.colorToolBar = self.addToolBar("Color") self.colorToolBar.addWidget(self.fontColorToolButton) self.colorToolBar.addWidget(self.fillColorToolButton) self.colorToolBar.addWidget(self.lineColorToolButton) pointerButton = QtGui.QToolButton() pointerButton.setCheckable(True) pointerButton.setChecked(True) pointerButton.setIcon(QtGui.QIcon(':/images/pointer.png')) linePointerButton = QtGui.QToolButton() linePointerButton.setCheckable(True) linePointerButton.setIcon(QtGui.QIcon(':/images/linepointer.png')) self.pointerTypeGroup = QtGui.QButtonGroup() self.pointerTypeGroup.addButton(pointerButton, DiagramScene.MoveItem) self.pointerTypeGroup.addButton(linePointerButton, DiagramScene.InsertLine) self.pointerTypeGroup.buttonClicked[int].connect(self.pointerGroupClicked) self.sceneScaleCombo = QtGui.QComboBox() self.sceneScaleCombo.addItems(["50%", "75%", "100%", "125%", "150%"]) self.sceneScaleCombo.setCurrentIndex(2) self.sceneScaleCombo.currentIndexChanged[str].connect(self.sceneScaleChanged) self.pointerToolbar = self.addToolBar("Pointer type") self.pointerToolbar.addWidget(pointerButton) self.pointerToolbar.addWidget(linePointerButton) self.pointerToolbar.addWidget(self.sceneScaleCombo)