def __init__(self, obj, parent=None): super().__init__(parent) self.ui = Ui_TextInspector() self.ui.setupUi(self) self.obj = None fontSizes = list(range(6, 16)) + list(range(16, 34, 2)) + list(range(36, 48, 4)) + \ list(range(48, 66, 6)) + list(range(66, 98, 8)) self.ui.fontSize.addItems([str(i) for i in fontSizes]) self.obj = obj self._loadProperties(obj)
def __init__(self, obj, parent=None): super().__init__(parent) self.ui = Ui_TextInspector() self.ui.setupUi(self) self._obj = None fontSizes = list(range(6, 16)) + list(range(16, 34, 2)) + list(range(36, 48, 4)) + \ list(range(48, 66, 6)) + list(range(66, 98, 8)) self.ui.fontSize.addItems([str(i) for i in fontSizes]) self._obj = obj self._loadProperties(obj)
class TextInspector(QWidget): edited = pyqtSignal() def __init__(self, obj, parent=None): super().__init__(parent) self.ui = Ui_TextInspector() self.ui.setupUi(self) self._obj = None fontSizes = list(range(6, 16)) + list(range(16, 34, 2)) + list(range(36, 48, 4)) + \ list(range(48, 66, 6)) + list(range(66, 98, 8)) self.ui.fontSize.addItems([str(i) for i in fontSizes]) self._obj = obj self._loadProperties(obj) @property def obj(self): return self._obj @obj.setter def obj(self, new): self._obj = new self._loadProperties(new) def _loadProperties(self, obj: TextObj): self.ui.text.setText(obj.text) if obj.alignment & Qt.AlignLeft: if obj.alignment & Qt.AlignTop: self.ui.btnTopLeft.setChecked(True) elif obj.alignment & Qt.AlignBottom: self.ui.btnBotLeft.setChecked(True) else: self.ui.btnMidLeft.setChecked(True) elif obj.alignment & Qt.AlignRight: if obj.alignment & Qt.AlignTop: self.ui.btnTopRight.setChecked(True) elif obj.alignment & Qt.AlignBottom: self.ui.btnBotRight.setChecked(True) else: self.ui.btnMidRight.setChecked(True) else: if obj.alignment & Qt.AlignTop: self.ui.btnTopCtr.setChecked(True) elif obj.alignment & Qt.AlignBottom: self.ui.btnBotCtr.setChecked(True) else: self.ui.btnMidCtr.setChecked(True) self.ui.fontFace.setCurrentText(obj.family) self.ui.fontSize.setCurrentText("{:g}".format(obj.ptSize/500)) @pyqtSlot(int) def on_alignGroup_buttonClicked(self, id): if self.ui.btnTopLeft.isChecked(): align = Qt.AlignTop | Qt.AlignLeft elif self.ui.btnTopCtr.isChecked(): align = Qt.AlignTop | Qt.AlignVCenter elif self.ui.btnTopRight.isChecked(): align = Qt.AlignTop | Qt.AlignRight elif self.ui.btnMidLeft.isChecked(): align = Qt.AlignHCenter | Qt.AlignLeft elif self.ui.btnMidCtr.isChecked(): align = Qt.AlignHCenter | Qt.AlignVCenter elif self.ui.btnMidRight.isChecked(): align = Qt.AlignHCenter | Qt.AlignRight elif self.ui.btnBotLeft.isChecked(): align = Qt.AlignBottom| Qt.AlignLeft elif self.ui.btnBotCtr.isChecked(): align = Qt.AlignBottom | Qt.AlignVCenter else: align = Qt.AlignBottom | Qt.AlignRight self.obj.alignment = align self.edited.emit() @pyqtSlot(str) def on_text_textEdited(self, text): if self.obj: self.obj.text = text self.edited.emit() @pyqtSlot(QFont) def on_fontFace_currentFontChanged(self, font): if self.obj: self.obj.family = font.family() self.edited.emit() @pyqtSlot(str) def on_fontSize_editTextChanged(self, text): if self.obj: self.obj.ptSize = int(float(text)*500) self.edited.emit()
class TextInspector(QWidget): edited = pyqtSignal() def __init__(self, obj, parent=None): super().__init__(parent) self.ui = Ui_TextInspector() self.ui.setupUi(self) self.obj = None fontSizes = list(range(6, 16)) + list(range(16, 34, 2)) + list(range(36, 48, 4)) + \ list(range(48, 66, 6)) + list(range(66, 98, 8)) self.ui.fontSize.addItems([str(i) for i in fontSizes]) self.obj = obj self._loadProperties(obj) def _loadProperties(self, obj: TextObj): self.ui.text.setText(obj.text) if obj.alignment & Qt.AlignLeft: if obj.alignment & Qt.AlignTop: self.ui.btnTopLeft.setChecked(True) elif obj.alignment & Qt.AlignBottom: self.ui.btnBotLeft.setChecked(True) else: self.ui.btnMidLeft.setChecked(True) elif obj.alignment & Qt.AlignRight: if obj.alignment & Qt.AlignTop: self.ui.btnTopRight.setChecked(True) elif obj.alignment & Qt.AlignBottom: self.ui.btnBotRight.setChecked(True) else: self.ui.btnMidRight.setChecked(True) else: if obj.alignment & Qt.AlignTop: self.ui.btnTopCtr.setChecked(True) elif obj.alignment & Qt.AlignBottom: self.ui.btnBotCtr.setChecked(True) else: self.ui.btnMidCtr.setChecked(True) self.ui.fontFace.setCurrentText(obj.family) self.ui.fontSize.setCurrentText("{:g}".format(obj.ptSize/500)) @pyqtSlot(int) def on_alignGroup_buttonClicked(self, id): if self.ui.btnTopLeft.isChecked(): align = Qt.AlignTop | Qt.AlignLeft elif self.ui.btnTopCtr.isChecked(): align = Qt.AlignTop | Qt.AlignVCenter elif self.ui.btnTopRight.isChecked(): align = Qt.AlignTop | Qt.AlignRight elif self.ui.btnMidLeft.isChecked(): align = Qt.AlignHCenter | Qt.AlignLeft elif self.ui.btnMidCtr.isChecked(): align = Qt.AlignHCenter | Qt.AlignVCenter elif self.ui.btnMidRight.isChecked(): align = Qt.AlignHCenter | Qt.AlignRight elif self.ui.btnBotLeft.isChecked(): align = Qt.AlignBottom| Qt.AlignLeft elif self.ui.btnBotCtr.isChecked(): align = Qt.AlignBottom | Qt.AlignVCenter elif self.ui.btnBotRight.isChecked(): align = Qt.AlignBottom | Qt.AlignRight self.obj.alignment = align self.edited.emit() @pyqtSlot(str) def on_text_textEdited(self, text): if self.obj: self.obj.text = text self.edited.emit() @pyqtSlot(QFont) def on_fontFace_currentFontChanged(self, font): if self.obj: self.obj.family = font.family() self.edited.emit() @pyqtSlot(str) def on_fontSize_editTextChanged(self, text): if self.obj: self.obj.ptSize = int(float(text)*500) self.edited.emit()