def __init__(self, title="", parent=None): super(TRCollapsibleBox, self).__init__(parent) self.toggle_button = QtGui.QToolButton() self.toggle_button.text = ' ' + title self.toggle_button.checkable = True self.toggle_button.checked = True self.toggle_button.setStyleSheet("QToolButton { border: none; font-weight: bold; color: #505050; vertical-align: middle }") self.toggle_button.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon) self.toggle_button.setArrowType(QtCore.Qt.RightArrow) self.toggle_button.setIconSize(QtCore.QSize(5,5)) self.toggle_button.clicked.connect(self.on_pressed) self.toggle_animation = QtCore.QParallelAnimationGroup(self) self.content_area = QtGui.QScrollArea() self.content_area.maximumHeight = 0 self.content_area.minimumHeight = 0 self.content_area.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) self.content_area.setFrameShape(QtGui.QFrame.NoFrame) lay = QtGui.QVBoxLayout(self) lay.setSpacing(0) lay.setContentsMargins(0, 0, 0, 0) lay.addWidget(self.toggle_button) lay.addWidget(self.content_area) self.toggle_animation.addAnimation(QtCore.QPropertyAnimation(self, b"minimumHeight")) self.toggle_animation.addAnimation(QtCore.QPropertyAnimation(self, b"maximumHeight")) self.toggle_animation.addAnimation(QtCore.QPropertyAnimation(self.content_area, b"maximumHeight"))
def update_table_format(self, clearTable=False): hidden_rows = 0 formattig_list = parser_format(self.edt_formatting.text) self.tab_fontKerning.blockSignals(True) for row in xrange(self.tab_fontKerning.rowCount): for col in xrange(self.tab_fontKerning.columnCount): cell_item = self.tab_fontKerning.item(row, col) if cell_item is not None: if not clearTable: for cell_rule, format_rule in formattig_list: if eval(cell_item.text() + cell_rule): if special_rule in format_rule: if format_rule[1:].upper() == 'HIDE': self.tab_fontKerning.hideRow(row) hidden_rows += 1 break elif format_rule[1:].upper() == 'SHOW': self.tab_fontKerning.showRow(row) break else: color_rule = QtGui.QColor(format_rule) color_rule.setAlpha(50) cell_item.setBackground(color_rule) else: cell_item.setBackground(QtGui.QColor('white')) self.tab_fontKerning.blockSignals(False) self.lbl_status_pairs_hidden.setText(hidden_rows)
def __init__(self): super(typerig_Manager, self).__init__() #self.setStyleSheet(ss_Toolbox_none) # - Tabs -------------------------- # -- Dynamically load all tabs self.tabs = TRHTabWidget() # --- Load all tabs from this directory as modules. Check __init__.py # --- <dirName>.modules tabs/modules manifest in list format for toolName in Manager.modules: if ignorePanel not in toolName: self.tabs.addTab(eval('Manager.%s.tool_tab()' %toolName), toolName) # - Layouts ------------------------------- layoutV = QtGui.QVBoxLayout() layoutV.setContentsMargins(0,0,0,0) self.lay_layers = QtGui.QGridLayout() self.lay_layers.setContentsMargins(15,5,5,3) # -- Build layouts ------------------------------- layoutV.addWidget(self.tabs) # - Set Widget ------------------------------- self.setLayout(layoutV) self.setWindowTitle('%s %s' %(app_name, app_version)) self.setGeometry(300, 300, 900, 440) self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) # Always on top!! #self.setMinimumWidth(300) self.show()
def __init__(self): super(tool_tab, self).__init__() # - Init layoutV = QtGui.QVBoxLayout() # - Build #layoutV.addWidget(QtGui.QLabel('Glyph: Adjust Metric data')) layoutV.addLayout(metrics_adjust()) layoutV.addSpacing(10) layoutV.addWidget(QtGui.QLabel('Glyph: Copy Metric data')) layoutV.addLayout(metrics_copy()) layoutV.addSpacing(10) layoutV.addWidget(QtGui.QLabel('Glyph: Copy BBox data')) layoutV.addLayout(bbox_copy()) layoutV.addSpacing(10) layoutV.addWidget(QtGui.QLabel('Glyph: Set metric expressions')) layoutV.addLayout(metrics_expr()) layoutV.addSpacing(10) layoutV.addWidget(QtGui.QLabel('\nFont: Set Font Metrics')) layoutV.addLayout(metrics_font()) # - Build --------------------------- layoutV.addStretch() self.setLayout(layoutV) # !!! Hotfix FL7 7355 self.setMinimumSize(300, self.sizeHint.height())
def __init__(self, aux): super(TRLayerMultiEdit, self).__init__() # - Init self.aux = aux self.backup = {} self.contourClipboard = {} # -- Custom controls self.tr_trans_ctrl = TRTransformCtrl() # -- Quick Tool buttons self.lay_buttons = QtGui.QGridLayout() self.btn_transform = QtGui.QPushButton('Transform') self.btn_trans_res = QtGui.QPushButton('Reset') self.btn_transform.setToolTip('Affine transform selected layers.') self.btn_trans_res.setToolTip('Reset transformation fileds.') self.btn_transform.clicked.connect(self.layer_transform) self.btn_trans_res.clicked.connect(self.tr_trans_ctrl.reset) self.lay_buttons.addWidget(self.tr_trans_ctrl, 0, 0, 2, 8) self.lay_buttons.addWidget(self.btn_trans_res, 2, 0, 1, 4) self.lay_buttons.addWidget(self.btn_transform, 2, 4, 1, 4) self.tr_trans_ctrl.lay_controls.setMargin(0) self.addLayout(self.lay_buttons)
def setTable(self, data, sortData=(True, True), indexColCheckable=None): name_row, name_column = [], [] self.blockSignals(True) self.setColumnCount(max(map(len, data.values()))) self.setRowCount(len(data.keys())) # - Populate for row, value in enumerate(sorted(data.keys()) if sortData[0] else data.keys()): name_row.append(value) for col, key in enumerate(sorted(data[value].keys()) if sortData[1] else data[value].keys()): name_column.append(key) rowData = data[value][key] if isinstance(rowData, basestring): newitem = QtGui.QTableWidgetItem(str(rowData)) else: newitem = QtGui.QTableWidgetItem() newitem.setData(QtCore.Qt.EditRole, rowData) # - Make the columnt checkable if indexColCheckable is not None and col in indexColCheckable: newitem.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled) newitem.setCheckState(QtCore.Qt.Unchecked) self.setItem(row, col, newitem) self.setHorizontalHeaderLabels(name_column) self.setVerticalHeaderLabels(name_row) self.blockSignals(False)
def getTransform(self, obj_rect=QtCore.QRectF(.0, .0, .0, .0)): # - Init origin_transform = QtGui.QTransform() rev_origin_transform = QtGui.QTransform() return_transform = QtGui.QTransform() m11 = float(self.spb_scale_x.value)/100. m13 = float(self.spb_translate_x.value) m22 = float(self.spb_scale_y.value)/100. m23 = float(self.spb_translate_y.value) # - Transform if self.rad_or.isChecked(): transform_origin = QtCore.QPointF(.0, .0) if self.rad_bl.isChecked(): transform_origin = obj_rect.topLeft() if self.rad_br.isChecked(): transform_origin = obj_rect.topRight() if self.rad_tl.isChecked(): transform_origin = obj_rect.bottomLeft() if self.rad_tr.isChecked(): transform_origin = obj_rect.bottomRight() if self.rad_ce.isChecked(): transform_origin = obj_rect.center() origin_transform.translate(-transform_origin.x(), -transform_origin.y()) rev_origin_transform.translate(transform_origin.x(), transform_origin.y()) return_transform.scale(m11, m22) return_transform.rotate(-float(self.spb_rotate.value)) return_transform.shear(radians(float(self.spb_shear.value)), 0.) return_transform.translate(m13, m23) return return_transform, origin_transform, rev_origin_transform
def refresh(self): # - Init self.model.removeRows(0, self.model.rowCount()) self.data_glyphs = getProcessGlyphs(pMode) # - Set Items for glyph in self.data_glyphs: glyph_name = '' # - GlyphName if self.chk_glyphUnicode.isChecked(): try: glyph_name += str(hex(glyph.unicode)).upper() + '\t' except TypeError: glyph_name += ' '*6 + '\t' if self.chk_glyphName.isChecked(): glyph_name += glyph.name item = QtGui.QStandardItem(glyph_name) # - Set Mark if self.chk_glyphMark.isChecked(): new_color = QtGui.QColor(fontMarkColors[glyph.mark]) new_color.setAlpha(30) item.setBackground(QtGui.QBrush(new_color)) # - Set Check item.setCheckable(True) if self.chk_glyphChecked.isChecked(): item.setChecked(True) self.model.appendRow(item) self.lst_glyphNames.setModel(self.model)
def __init__(self, aux): super(TRNewLayerBlend, self).__init__() # - Init self.aux = aux self.process_array = [] self.active_workspace = pWorkspace() self.active_canvas = self.active_workspace.getCanvas(True) # - Interface self.lay_buttons = QtGui.QGridLayout() self.chk_setAxis = QtGui.QPushButton('Set Axis') self.chk_swapAxis = QtGui.QPushButton('Swap') self.chk_setAxis.setCheckable(True) self.chk_swapAxis.setCheckable(True) self.chk_setAxis.clicked.connect(lambda: self.prepare_lerp()) # -- Blend active layer to single selected layer self.mixer_dx = TRSliderCtrl('1', '1000', '0', 1) self.mixer_dx.sld_axis.valueChanged.connect( lambda: self.process_lerp()) self.lay_buttons.addWidget(self.chk_setAxis, 0, 0, 1, 1) self.lay_buttons.addWidget(self.chk_swapAxis, 0, 1, 1, 1) self.addLayout(self.lay_buttons) self.addLayout(self.mixer_dx)
def fold(self): # - Init width_all = self.width height_folded = self.btn_unfold.sizeHint.height() # - Do if not self.flag_fold: self.tabs.hide() self.fr_controller.hide() self.btn_unfold.show() self.setMinimumHeight(height_folded) self.repaint() self.resize(width_all, height_folded) self.flag_fold = True else: QtGui.uiRefresh(self) self.tabs.show() self.fr_controller.show() self.btn_unfold.hide() self.adjustSize() self.resize(width_all, self.sizeHint.height()) # !!! Hotfix FL7 7355 self.repaint() self.flag_fold = False
def _addItem(self, data=None): new_item_data = ['New', '', '', default_sx, default_sy, _rand_hex()] if data is None else data root = self.selectedItems()[0].parent() if len(self.selectedItems()) else self.invisibleRootItem() new_item = QtGui.QTreeWidgetItem(root, new_item_data) color_decorator = QtGui.QColor(new_item_data[-1]) new_item.setData(0, QtCore.Qt.DecorationRole, color_decorator) new_item.setFlags(new_item.flags() & ~QtCore.Qt.ItemIsDropEnabled | QtCore.Qt.ItemIsEditable)
def __init__(self): super(metrics_expr, self).__init__() self.edt_lsb = TRMLineEdit() self.edt_adv = TRMLineEdit() self.edt_rsb = TRMLineEdit() self.edt_lsb.setPlaceholderText('Metric expression') self.edt_adv.setPlaceholderText('Metric expression') self.edt_rsb.setPlaceholderText('Metric expression') self.btn_setMetrics = QtGui.QPushButton('&Set') self.btn_getMetrics = QtGui.QPushButton('&Get') self.btn_getShapeParent = QtGui.QPushButton('&Reference') self.btn_delMetrics = QtGui.QPushButton('&Unlink') self.btn_autoBind = QtGui.QPushButton('&Auto Link') self.btn_getMetrics.setToolTip( 'Get Metric expressions for current layer') self.btn_setMetrics.setToolTip( 'Set Metric expressions.\n\n - Click: Set\n - SHIFT + Click: Set LSB with distance between selected two nodes removed from the expression.\n - Alt + Click: Set RSB with distance between selected two nodes removed from the expression.\n - All above + CTRL: - Negate operation (distance added)' ) self.btn_autoBind.setToolTip( 'Automatically bind metric expressions from available element references.' ) self.btn_getMetrics.clicked.connect(lambda: self.getMetricEquations()) self.btn_setMetrics.clicked.connect( lambda: self.setMetricEquations(False)) self.btn_delMetrics.clicked.connect( lambda: self.setMetricEquations(True)) self.btn_getShapeParent.clicked.connect(self.bindShapeParent) self.btn_autoBind.clicked.connect(self.autoMetricEquations) self.spb_shapeIndex = QtGui.QSpinBox() self.addWidget(QtGui.QLabel('ADV:'), 0, 0, 1, 1) self.addWidget(self.edt_adv, 0, 1, 1, 5) self.addWidget(QtGui.QLabel('LSB:'), 1, 0, 1, 1) self.addWidget(self.edt_lsb, 1, 1, 1, 5) self.addWidget(QtGui.QLabel('RSB:'), 2, 0, 1, 1) self.addWidget(self.edt_rsb, 2, 1, 1, 5) self.addWidget(self.btn_getMetrics, 3, 0, 1, 2) self.addWidget(self.btn_setMetrics, 3, 2, 1, 4) self.addWidget(QtGui.QLabel('Composite Glyph: Metric expressions'), 4, 0, 1, 5) self.addWidget(self.btn_getShapeParent, 5, 0, 1, 2) self.addWidget(self.spb_shapeIndex, 5, 2, 1, 1) self.addWidget(self.btn_autoBind, 5, 3, 1, 1) self.addWidget(self.btn_delMetrics, 5, 4, 1, 1) self.setColumnStretch(0, 0) self.setColumnStretch(1, 5)
def __init__(self, parent, mode): super(dlg_LayerSelect, self).__init__() # - Init self.parent_widget = parent # - Basic Widgets self.tab_masters = TRTableView(table_dict) self.table_populate(mode) self.tab_masters.cellChanged.connect( lambda: self.parent_widget.layers_refresh()) # -- Buttons self.btn_tableCheck = QtGui.QPushButton('Select All') self.btn_tableCheckMasters = QtGui.QPushButton('Masters') self.btn_tableCheckMasks = QtGui.QPushButton('Masks') self.btn_tableCheckServices = QtGui.QPushButton('Services') self.btn_tableCheck.setToolTip( 'Click check all.\n<ALT> + Click uncheck all.') self.btn_tableCheckMasters.setToolTip( 'Click check all.\n<ALT> + Click uncheck all.') self.btn_tableCheckMasks.setToolTip( 'Click check all.\n<ALT> + Click uncheck all.') self.btn_tableCheckServices.setToolTip( 'Click check all.\n<ALT> + Click uncheck all.') if mode != 0: self.btn_tableCheckMasters.setEnabled(False) self.btn_tableCheckMasks.setEnabled(False) self.btn_tableCheckServices.setEnabled(False) self.btn_tableCheck.clicked.connect(lambda: self.table_check_all()) self.btn_tableCheckMasters.clicked.connect( lambda: self.table_check_all('Master')) self.btn_tableCheckMasks.clicked.connect( lambda: self.table_check_all('Mask')) self.btn_tableCheckServices.clicked.connect( lambda: self.table_check_all('Service')) # - Build layout layoutV = QtGui.QGridLayout() layoutV.addWidget(self.btn_tableCheck, 0, 0, 1, 2) layoutV.addWidget(self.btn_tableCheckMasters, 0, 2, 1, 2) layoutV.addWidget(self.btn_tableCheckMasks, 1, 0, 1, 2) layoutV.addWidget(self.btn_tableCheckServices, 1, 2, 1, 2) layoutV.addWidget(self.tab_masters, 2, 0, 20, 4) # - Set Widget self.setLayout(layoutV) self.setWindowTitle('%s %s | Select Layers' % (app_name, app_version)) self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) # Always on top!! self.setGeometry(500, 200, 300, 600)
def __build(self): # - Init self.sliders = [] self.process_glyphs = [] # - Buttons self.btn_capture = QtGui.QPushButton('Capture Smart Angles') self.btn_capture.clicked.connect(lambda: self.capture()) # - Set layout self.addWidget(QtGui.QLabel('\nRound: Smart corner control')) self.addWidget(self.btn_capture)
def __init__(self, edt_0, edt_1, edt_pos, spb_step): super(TRSliderCtrl, self).__init__() # - Init self.initValues = (edt_0, edt_1, edt_pos, spb_step) self.edt_0 = QtGui.QLineEdit(edt_0) self.edt_1 = QtGui.QLineEdit(edt_1) self.edt_pos = QtGui.QLineEdit(edt_pos) self.spb_step = QtGui.QSpinBox() self.spb_step.setValue(spb_step) self.sld_axis = QtGui.QSlider(QtCore.Qt.Horizontal) self.sld_axis.valueChanged.connect(self.sliderChange) self.refreshSlider() self.edt_0.editingFinished.connect(self.refreshSlider) self.edt_1.editingFinished.connect(self.refreshSlider) self.spb_step.valueChanged.connect(self.refreshSlider) self.edt_pos.editingFinished.connect(self.refreshSlider) # - Layout self.addWidget(self.sld_axis, 0, 0, 1, 5) self.addWidget(self.edt_pos, 0, 5, 1, 1) self.addWidget(QtGui.QLabel('Min:'), 1, 0, 1, 1) self.addWidget(self.edt_0, 1, 1, 1, 1) self.addWidget(QtGui.QLabel('Max:'), 1, 2, 1, 1) self.addWidget(self.edt_1, 1, 3, 1, 1) self.addWidget(QtGui.QLabel('Step:'), 1, 4, 1, 1) self.addWidget(self.spb_step, 1, 5, 1, 1)
def __init__(self, dlg_name, dlg_msg, dlg_field_t, dlg_field_b, dlg_size=(300, 300, 300, 100)): super(TR2FieldDLG, self).__init__() # - Init self.values = (None, None) # - Widgets self.lbl_main = QtGui.QLabel(dlg_msg) self.lbl_field_t = QtGui.QLabel(dlg_field_t) self.lbl_field_b = QtGui.QLabel(dlg_field_b) self.edt_field_t = QtGui.QLineEdit() # Top field self.edt_field_b = QtGui.QLineEdit() # Bottom field self.btn_ok = QtGui.QPushButton('OK', self) self.btn_cancel = QtGui.QPushButton('Cancel', self) self.btn_ok.clicked.connect(self.return_values) self.btn_cancel.clicked.connect(self.reject) # - Build main_layout = QtGui.QGridLayout() main_layout.addWidget(self.lbl_main, 0, 0, 1, 4) main_layout.addWidget(self.lbl_field_t, 1, 0, 1, 2) main_layout.addWidget(self.edt_field_t, 1, 2, 1, 2) main_layout.addWidget(self.lbl_field_b, 2, 0, 1, 2) main_layout.addWidget(self.edt_field_b, 2, 2, 1, 2) main_layout.addWidget(self.btn_ok, 3, 0, 1, 2) main_layout.addWidget(self.btn_cancel, 3, 2, 1, 2) # - Set self.setLayout(main_layout) self.setWindowTitle(dlg_name) self.setGeometry(*dlg_size) self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) self.exec_()
def class_add_new(self): if self.tab_groupKern.rowCount > 0: self.tab_groupKern.insertRow(0) item_groupName = QtGui.QTableWidgetItem( 'Class_%s' % self.tab_groupKern.rowCount) item_groupPos = QtGui.QTableWidgetItem('KernLeft') item_groupMem = QtGui.QTableWidgetItem('') self.tab_groupKern.setItem(0, 0, item_groupName) self.tab_groupKern.setItem(0, 1, item_groupPos) self.tab_groupKern.setItem(0, 2, item_groupMem) else: layer = self.cmb_layer.currentText empty_table = {layer: {'Class_1': [[''], 'KernLeft']}} self.update_data(empty_table)
def setTable(self, data): # - Init font_layers, font_kerning, all_pairs = data self.blockSignals(True) self.setColumnCount(len(font_layers)) self.setRowCount(len(all_pairs)) #self.setSortingEnabled(False) # Great solution from: https://stackoverflow.com/questions/7960505/strange-qtablewidget-behavior-not-all-cells-populated-after-sorting-followed-b # - Headers self.setHorizontalHeaderLabels(font_layers) self.setVerticalHeaderLabels([pair_delimiter.join(pair) for pair in all_pairs]) self.horizontalHeader().setDefaultAlignment(QtCore.Qt.AlignLeft) self.verticalHeader().setDefaultAlignment(QtCore.Qt.AlignLeft) # - Populate for row, pair in enumerate(all_pairs): for col, layer in enumerate(font_layers): kern_value = font_kerning[col][pair] if kern_value is None: kern_value = NOVAL else: kern_value = int(kern_value) new_item = QtGui.QTableWidgetItem(str(kern_value)) self.setItem(row, col, new_item) self.blockSignals(False) #self.setSortingEnabled(True) self.resizeRowsToContents()
def __init__(self): super(tool_tab, self).__init__() # - Init layoutV = QtGui.QVBoxLayout() # - Build layoutV.addWidget(QtGui.QLabel('Curve: Basic tools')) layoutV.addLayout(curveEq()) # - Build --------------------------- layoutV.addStretch() self.setLayout(layoutV) # !!! Hotfix FL7 7355 self.setMinimumSize(300, self.sizeHint.height())
def __init__(self): super(tool_tab, self).__init__() # - Init layoutV = QtGui.QVBoxLayout() self.strGenerator = TRStringGen() # - Build --------------------------- layoutV.addWidget(QtGui.QLabel('Pairs generator:')) layoutV.addLayout(self.strGenerator) layoutV.addStretch() self.setLayout(layoutV) # !!! Hotfix FL7 7355 self.setMinimumSize(300, self.sizeHint.height())
def __init__(self): super(shapeMovement, self).__init__() # - Init self.methodList = ['Shift', 'Scale', 'Shear'] # - Methods self.cmb_methodSelector = QtGui.QComboBox() self.cmb_methodSelector.addItems(self.methodList) self.cmb_methodSelector.setToolTip('Select transformation method') # - Arrow buttons self.btn_up = QtGui.QPushButton('Up') self.btn_down = QtGui.QPushButton('Down') self.btn_left = QtGui.QPushButton('Left') self.btn_right = QtGui.QPushButton('Right') self.btn_up.setMinimumWidth(80) self.btn_down.setMinimumWidth(80) self.btn_left.setMinimumWidth(80) self.btn_right.setMinimumWidth(80) self.btn_up.clicked.connect(self.onUp) self.btn_down.clicked.connect(self.onDown) self.btn_left.clicked.connect(self.onLeft) self.btn_right.clicked.connect(self.onRight) self.edt_offX = QtGui.QLineEdit('1.0') self.edt_offY = QtGui.QLineEdit('1.0') self.edt_offX.setToolTip('X offset') self.edt_offY.setToolTip('Y offset') # - Layout self.lay_btn = QtGui.QGridLayout() self.lay_btn.addWidget(self.cmb_methodSelector, 0, 0, 1, 6) self.lay_btn.addWidget(QtGui.QLabel('X:'), 1, 0, 1, 1) self.lay_btn.addWidget(self.edt_offX, 1, 1, 1, 1) self.lay_btn.addWidget(self.btn_up, 1, 2, 1, 2) self.lay_btn.addWidget(QtGui.QLabel('Y:'), 1, 4, 1, 1) self.lay_btn.addWidget(self.edt_offY, 1, 5, 1, 1) self.lay_btn.addWidget(self.btn_left, 2, 0, 1, 2) self.lay_btn.addWidget(self.btn_down, 2, 2, 1, 2) self.lay_btn.addWidget(self.btn_right, 2, 4, 1, 2) self.addLayout(self.lay_btn)
def __init__(self): super(TRGlyphTag, self).__init__() # - Widget & Layout self.edt_tagString = TRGLineEdit() self.edt_tagString.setPlaceholderText('Glyph tags') self.edt_tagString.setToolTip('A comma separated list of tags.') self.edt_tagStringNode = QtGui.QLineEdit() self.edt_tagStringNode.setPlaceholderText('Node name') self.edt_tagStringNode.setToolTip('A single node name.') self.btn_tagGlyph = QtGui.QPushButton('Glyph') self.btn_tagWindow = QtGui.QPushButton('Window') self.btn_tagSelection = QtGui.QPushButton('Selection') self.btn_tagNodes = QtGui.QPushButton('Glyph') self.btn_tagWindowNodes = QtGui.QPushButton('Window') self.btn_tagNodesClear = QtGui.QPushButton('Clear') self.btn_tagGlyph.clicked.connect(lambda: self.tag_glyphs('G')) self.btn_tagWindow.clicked.connect(lambda: self.tag_glyphs('W')) self.btn_tagSelection.clicked.connect(lambda: self.tag_glyphs('S')) self.btn_tagNodes.clicked.connect(lambda: self.tag_nodes('G')) self.btn_tagWindowNodes.clicked.connect(lambda: self.tag_nodes('W')) self.btn_tagNodesClear.clicked.connect( lambda: self.edt_tagStringNode.clear()) self.btn_tagGlyph.setToolTip('Add tags to current glyph.') self.btn_tagWindow.setToolTip( 'Add tags to all glyphs in current Glyph window.') self.btn_tagSelection.setToolTip( 'Add tags to current selection in Font window.') self.btn_tagNodes.setToolTip( 'Add name selected nodes at current glyph.') self.btn_tagWindowNodes.setToolTip( 'Add name to selected nodes at all glyphs in current Glyph window.' ) self.btn_tagNodesClear.setToolTip('Clear/Reset input filed.') # - Build self.addWidget(QtGui.QLabel('Glyph tagging:'), 1, 0, 1, 9) self.addWidget(self.edt_tagString, 2, 0, 1, 9) self.addWidget(self.btn_tagGlyph, 3, 0, 1, 3) self.addWidget(self.btn_tagWindow, 3, 3, 1, 3) self.addWidget(self.btn_tagSelection, 3, 6, 1, 3) self.addWidget(QtGui.QLabel('Node naming:'), 4, 0, 1, 9) self.addWidget(self.edt_tagStringNode, 5, 0, 1, 9) self.addWidget(self.btn_tagNodes, 6, 0, 1, 3) self.addWidget(self.btn_tagWindowNodes, 6, 3, 1, 3) self.addWidget(self.btn_tagNodesClear, 6, 6, 1, 3)
def setTree(self, data, reset=False): self.blockSignals(True) self.clear() header_row = ['Layer/Zone', 'Position', 'Width', 'Type'] self.setHeaderLabels(header_row) for key, value in data.iteritems(): master = QtGui.QTreeWidgetItem(self, [key]) for zoneTuple in value: zoneData = QtGui.QTreeWidgetItem(master, [ zoneTuple[2], zoneTuple[0], zoneTuple[1], ('B: %s', 'T: %s')[zoneTuple[1] > 0] % zoneTuple[0] ]) zoneData.setFlags(zoneData.flags() | QtCore.Qt.ItemIsEditable) self.blockSignals(False)
def __init__(self): super(tool_tab, self).__init__() layoutV = QtGui.QVBoxLayout() splitter = QtGui.QSplitter(QtCore.Qt.Vertical) self.fontMetrics = WFontMetrics(self) self.fontZones = WFontZones(self) splitter.addWidget(self.fontMetrics) splitter.addWidget(self.fontZones) splitter.setStretchFactor(0, 1) splitter.setStretchFactor(1, 2) layoutV.addWidget(splitter) self.setLayout(layoutV)
def __init__(self, aux): super(KernTableWidget, self).__init__() # - Init self.aux = aux self.flag_valueDefault = QtGui.QColor('black') self.flag_valueChanged = QtGui.QColor('red') self.values_changed = [] self.itemChanged.connect(self.kern_value_changed) self.selectionModel().selectionChanged.connect(self.selection_status_changed) # - Styling self.header = self.horizontalHeader() self.setShowGrid(True)
def __init__(self): super(basicOps, self).__init__() # - Widgets self.edt_shapeName = MLineEdit() self.edt_shapeName.setPlaceholderText('Element name') self.btn_setShapeName = QtGui.QPushButton('&Set Name') self.btn_unlinkShape = QtGui.QPushButton('&Unlink References') self.btn_delShape = QtGui.QPushButton('&Remove') self.btn_resetShape = QtGui.QPushButton('Reset &transform') self.btn_reorderShape = QtGui.QPushButton('&Auto Reorder Layer') self.btn_roundShape = QtGui.QPushButton('R&ound transform') self.btn_ungroupAllShapes = QtGui.QPushButton('Un&group All') self.btn_setShapeName.clicked.connect(self.shape_setname) self.btn_unlinkShape.clicked.connect(self.shape_unlink) self.btn_delShape.clicked.connect(self.shape_delete) self.btn_resetShape.clicked.connect(self.shape_resetTransform) self.btn_roundShape.clicked.connect(self.shape_roundTransform) self.btn_reorderShape.clicked.connect(self.shape_autoReorder) self.btn_ungroupAllShapes.clicked.connect(self.shape_ungroupAll) self.addWidget(self.edt_shapeName, 0, 0, 1, 6) self.addWidget(self.btn_setShapeName, 1, 0, 1, 3) self.addWidget(self.btn_unlinkShape, 1, 3, 1, 3) self.addWidget(self.btn_delShape, 2, 0, 1, 3) self.addWidget(self.btn_resetShape, 2, 3, 1, 3) self.addWidget(self.btn_reorderShape, 3, 0, 1, 6) self.addWidget(self.btn_roundShape, 4, 0, 1, 3) self.addWidget(self.btn_ungroupAllShapes, 4, 3, 1, 3)
def __init__(self): super(TRImpEx, self).__init__() # - Interface # -- Layouts self.lay_base = QtGui.QGridLayout() self.plane_A = QtGui.QListWidget() self.plane_B = QtGui.QListWidget() self.plane_C = QtGui.QVBoxLayout() self.plane_A.setAlternatingRowColors(True) self.plane_B.setAlternatingRowColors(True) self.plane_A.addItems(sorted(impex_actions_db.keys())) self.plane_A.selectionModel().selectionChanged.connect( self.refresh_plane_B) self.plane_B.selectionModel().selectionChanged.connect(self.run_action) self.plane_C.addWidget( ImpexActions.action_empty()) # Set empty widget at start # - Build self.lay_base.addWidget(QtGui.QLabel('Import/Export type:'), 0, 1) self.lay_base.addWidget(QtGui.QLabel('Action:'), 0, 2) self.lay_base.addWidget(QtGui.QLabel('Options:'), 0, 3) self.lay_base.addWidget(self.plane_A, 1, 1) self.lay_base.addWidget(self.plane_B, 1, 2) self.lay_base.addLayout(self.plane_C, 1, 3) self.lay_base.setColumnStretch(1, 1) self.lay_base.setColumnStretch(2, 1) self.lay_base.setColumnStretch(3, 1) self.setLayout(self.lay_base)
def setTree(self, data, headers): self.blockSignals(True) self.clear() self.setHeaderLabels(headers) # - Insert for key, value in data.items(): master = QtGui.QTreeWidgetItem(self, [key]) for sub in value: new_item = QtGui.QTreeWidgetItem(master, sub) # - Fit data for c in range(self.columnCount): self.resizeColumnToContents(c) self.expandAll() self.blockSignals(False)
def __init__(self): super(tool_tab, self).__init__() layoutV = QtGui.QVBoxLayout() self.kernGroups = WKernGroups(self) if system() != 'Darwin': # - Menubar only on Windows self.ActionsMenu = QtGui.QMenuBar(self) self.ActionsMenu.addMenu(self.kernGroups.menu_data) self.ActionsMenu.addMenu(self.kernGroups.menu_class) self.ActionsMenu.addMenu(self.kernGroups.menu_type) self.ActionsMenu.addMenu(self.kernGroups.menu_memb) layoutV.setMenuBar(self.ActionsMenu) layoutV.addWidget(self.kernGroups) # - Build --------------------------- self.setLayout(layoutV)
def __init__(self): super(tool_tab, self).__init__() layoutV = QtGui.QVBoxLayout() self.Importer = TRImpEx() layoutV.addWidget(self.Importer) # - Build --------------------------- self.setLayout(layoutV)