class ToolBar(QToolBar): Type = 'DAMGUI' key = 'ToolBar' _name = 'DAMG Tool Bar' _copyright = __copyright__ actions = [] def __init__(self, parent=None): QToolBar.__init__(self) self.parent = parent try: self.parent.children() except AttributeError: pass else: self.setParent(self.parent) finally: self.key = '{0}_{1}'.format(self.parent.key, self.key) self.signals = SignalManager(self) self.settings = Settings(SETTING_FILEPTH['app'], ST_FORMAT['ini'], self) self.setWindowTitle(self._name) self.values = dict(w=self.width(), h=self.height(), x=self.x(), y=self.y()) def add_action(self, action): self.actions.append(action) return self.addAction(action) def sizeHint(self): size = super(ToolBar, self).sizeHint() size.setHeight(size.height()) size.setWidth(max(size.width(), size.height())) return size def setValue(self, key, value): return self.settings.initSetValue(key, value, self.key) def getValue(self, key): return self.settings.initValue(key, self.key) def moveEvent(self, event): if self.settings._settingEnable: self.setValue('x', self.x()) self.setValue('y', self.y()) def resizeEvent(self, event): if self.settings._settingEnable: self.setValue('w', self.width()) self.setValue('h', self.height()) def closeEvent(self, event): if __name__ == '__main__': self.close() else: self.signals.emit('showLayout', self.key, 'hide') def hideEvent(self, event): if __name__ == '__main__': self.hide() else: if self.settings._settingEnable: for key, value in self.values.items(): self.setValue(key, value) self.signals.emit('showLayout', self.key, 'hide') def showEvent(self, event): if self.settings._settingEnable: w = self.getValue('w') h = self.getValue('h') x = self.getValue('x') y = self.getValue('x') vals = [w, h, x, y] for i in range(len(vals)): if vals[i] is None: key = [k for k in self.values.keys()] value = self.values[key[i]] for index, element in enumerate(vals): if element == vals[i]: vals[index] = value self.setValue(key[i], self.values[key[i]]) for v in vals: if not type(v) in [int]: v = int(v) self.resize(vals[0], vals[1]) self.move(vals[2], vals[3]) if __name__ == '__main__': self.show() else: self.signals.emit('showLayout', self.key, 'show') @property def copyright(self): return self._copyright @property def name(self): return self._name @name.setter def name(self, newName): self._name = newName # ------------------------------------------------------------------------------------------------------------- # Created by panda on 31/07/2018 - 12:50 AM # © 2017 - 2018 DAMGteam. All rights reserved
class PlainTextEdit(QPlainTextEdit): Type = 'DAMGUI' key = 'PlainTextEdit' _name = 'DAMG Plain Text Edit' _copyright = __copyright__ def __init__(self, preset={}, parent=None): super(PlainTextEdit, self).__init__(parent) self.signals = SignalManager(self) self.settings = Settings(SETTING_FILEPTH['app'], ST_FORMAT['ini'], self) self.parent = parent self.preset = preset if check_preset(self.preset): self.buildUI() self.values = dict(w = self.width(), h = self.height(), x = self.x(), y = self.y()) def sizeHint(self): size = super(PlainTextEdit, self).sizeHint() size.setHeight(size.height()) size.setWidth(max(size.width(), size.height())) return size def setValue(self, key, value): return self.settings.initSetValue(key, value, self.key) def getValue(self, key): return self.settings.initValue(key, self.key) def moveEvent(self, event): if self.settings._settingEnable: self.setValue('x', self.x()) self.setValue('y', self.y()) def resizeEvent(self, event): if self.settings._settingEnable: self.setValue('w', self.width()) self.setValue('h', self.height()) def closeEvent(self, event): if __name__=='__main__': self.close() else: self.signals.emit('setSetting', 'showLayout', 'hide', self.key) def hideEvent(self, event): if __name__=='__main__': self.hide() else: if self.settings._settingEnable: for key, value in self.values.items(): self.setValue(key, value) self.signals.emit('setSetting', 'showLayout', 'hide', self.key) def showEvent(self, event): if self.settings._settingEnable: w = self.getValue('w') h = self.getValue('h') x = self.getValue('x') y = self.getValue('x') vals = [w, h, x, y] for i in range(len(vals)): if vals[i] is None: key = [k for k in self.values.keys()] value = self.values[key[i]] for index, element in enumerate(vals): if element == vals[i]: vals[index] = value self.setValue(key[i], self.values[key[i]]) for v in vals: if not type(v) in [int]: v = int(v) self.resize(vals[0], vals[1]) self.move(vals[2], vals[3]) if __name__=='__main__': self.show() else: self.signals.emit('setSetting', self.key, 'showLayout', 'show') event.ignore() @property def copyright(self): return self._copyright @property def name(self): return self._name @name.setter def name(self, newName): self._name = newName def buildUI(self): if self.preset is None or self.preset == {}: self.preset = {'txt': ' '} for key, value in self.preset.items(): if key == 'lwm': # setLineWrapMode self.setLineWrapMode(value) elif key == 'sfh': # setFixHeight self.setFixedHeight(value) elif key == 'vsbp': # setVerticalScrollBarPolicy self.setVerticalScrollBarPolicy(value) elif key == 'adr': # setAcceptDrops self.setAcceptDrops(value) elif key == 'rol': # setReadOnly self.setReadOnly(value)
class LineEdit(QLineEdit): Type = 'DAMGUI' key = 'LineEdit' _name = 'DAMG Line Edit' _copyright = __copyright__ def __init__(self, preset={}, parent=None): super(LineEdit, self).__init__(parent) self.signals = SignalManager(self) self.settings = Settings(SETTING_FILEPTH['app'], ST_FORMAT['ini'], self) self.parent = parent self.preset = preset if check_preset(self.preset): self.buildUI() self.values = dict(w = self.width(), h = self.height(), x = self.x(), y = self.y()) def sizeHint(self): size = super(LineEdit, self).sizeHint() size.setHeight(size.height()) size.setWidth(max(size.width(), size.height())) return size def setValue(self, key, value): return self.settings.initSetValue(key, value, self.key) def getValue(self, key): return self.settings.initValue(key, self.key) def moveEvent(self, event): if self.settings._settingEnable: self.setValue('x', self.x()) self.setValue('y', self.y()) def resizeEvent(self, event): if self.settings._settingEnable: self.setValue('w', self.width()) self.setValue('h', self.height()) def closeEvent(self, event): if __name__=='__main__': self.close() else: self.signals.emit('showLayout', self.key, 'hide') def hideEvent(self, event): if __name__=='__main__': self.hide() else: if self.settings._settingEnable: for key, value in self.values.items(): self.setValue(key, value) self.signals.emit('showLayout', self.key, 'hide') def showEvent(self, event): if self.settings._settingEnable: w = self.getValue('w') h = self.getValue('h') x = self.getValue('x') y = self.getValue('x') vals = [w, h, x, y] for i in range(len(vals)): if vals[i] is None: key = [k for k in self.values.keys()] value = self.values[key[i]] for index, element in enumerate(vals): if element == vals[i]: vals[index] = value self.setValue(key[i], self.values[key[i]]) for v in vals: if not type(v) in [int]: v = int(v) self.resize(vals[0], vals[1]) self.move(vals[2], vals[3]) if __name__=='__main__': self.show() else: self.signals.emit('showLayout', self.key, 'show') @property def copyright(self): return self._copyright @property def name(self): return self._name @name.setter def name(self, newName): self._name = newName def buildUI(self): if self.preset is None or self.preset == {}: self.preset = {'txt': ' '} for key, value in self.preset.items(): if key == 'fn': self.setEchoMode(PRS[value]) elif key == 'txt': self.setText(value) elif key == 'validator': if value == 'int': self.setValidator(QIntValidator()) elif key == 'echo': if value == 'password': self.setEchoMode(QLineEdit.Password) else: print("PresetKeyError at {0}: No such key registed in preset: {1}: {2}".format(__name__, key, value)) # ------------------------------------------------------------------------------------------------------------- # Created by panda on 27/10/2019 - 6:40 PM # © 2017 - 2018 DAMGteam. All rights reserved
class DockWidget(QDockWidget): # self.content = DockStamp(self) # self.setWidget(self.content) # cursor = self.content.textCursor() # cursor.insertBlock() # cursor.insertText("Note info") Type = 'DAMGUI' key = 'DockWidget' _name = 'DAMG Dock Widget' _copyright = __copyright__ def __init__(self, parent=None): QDockWidget.__init__(self) self.parent = parent self._name = self.__class__.__name__ self.signals = SignalManager(self) self.logger = Loggers(self.__class__.__name__) self.settings = Settings(SETTING_FILEPTH['app'], ST_FORMAT['ini'], self) self.values = dict(w=self.width(), h=self.height(), x=self.x(), y=self.y()) def sizeHint(self): size = super(DockWidget, self).sizeHint() size.setHeight(size.height()) size.setWidth(max(size.width(), size.height())) return size def setValue(self, key, value): return self.settings.initSetValue(key, value, self.key) def getValue(self, key): return self.settings.initValue(key, self.key) def moveEvent(self, event): if self.settings._settingEnable: self.setValue('x', self.x()) self.setValue('y', self.y()) def resizeEvent(self, event): if self.settings._settingEnable: self.setValue('w', self.width()) self.setValue('h', self.height()) def closeEvent(self, event): if __name__ == '__main__': self.close() else: self.signals.emit('showLayout', self.key, 'hide') def hideEvent(self, event): if __name__ == '__main__': self.hide() else: if self.settings._settingEnable: for key, value in self.values.items(): self.setValue(key, value) self.signals.emit('showLayout', self.key, 'hide') def showEvent(self, event): if self.settings._settingEnable: w = self.getValue('w') h = self.getValue('h') x = self.getValue('x') y = self.getValue('x') vals = [w, h, x, y] for i in range(len(vals)): if vals[i] is None: key = [k for k in self.values.keys()] value = self.values[key[i]] for index, element in enumerate(vals): if element == vals[i]: vals[index] = value self.setValue(key[i], self.values[key[i]]) for v in vals: if not type(v) in [int]: v = int(v) self.resize(vals[0], vals[1]) self.move(vals[2], vals[3]) if __name__ == '__main__': self.show() else: self.signals.emit('showLayout', self.key, 'show') @property def copyright(self): return self._copyright @property def name(self): return self._name @name.setter def name(self, newName): self._name = newName
class CheckBox(QCheckBox): Type = 'DAMGUI' key = 'CheckBox' _name = 'DAMG Check Box' _copyright = __copyright__ def __init__(self, txt=None, preset={}, parent=None): super(CheckBox, self).__init__(parent) self.signals = SignalManager(self) self.settings = Settings(SETTING_FILEPTH['app'], ST_FORMAT['ini'], self) self.parent = parent self.txt = txt if self.txt is not None: self.setText(self.txt) self.stateChanged.connect(self.saveState) self.values = dict(w=self.width(), h=self.height(), x=self.x(), y=self.y()) self.preset = preset if check_preset(self.preset): self.buildUI() def buildUI(self): for key, value in self.preset.items(): if key == 'tt': self.setToolTip(value) def saveState(self, val): if val >= 1: state = True else: state = False self.setValue('checkState', state) def sizeHint(self): size = super(CheckBox, self).sizeHint() size.setHeight(size.height()) size.setWidth(max(size.width(), size.height())) return size def setValue(self, key, value): return self.settings.initSetValue(key, value, self.key) def getValue(self, key): return self.settings.initValue(key, self.key) def moveEvent(self, event): if self.settings._settingEnable: self.setValue('x', self.x()) self.setValue('y', self.y()) def resizeEvent(self, event): if self.settings._settingEnable: self.setValue('w', self.width()) self.setValue('h', self.height()) def closeEvent(self, event): if __name__=='__main__': self.close() else: self.signals.emit('showLayout', self.key, 'hide') def hideEvent(self, event): if __name__=='__main__': self.hide() else: if self.settings._settingEnable: for key, value in self.values.items(): self.setValue(key, value) self.signals.emit('showLayout', self.key, 'hide') def showEvent(self, event): if self.settings._settingEnable: w = self.getValue('w') h = self.getValue('h') x = self.getValue('x') y = self.getValue('x') vals = [w, h, x, y] for i in range(len(vals)): if vals[i] is None: key = [k for k in self.values.keys()] value = self.values[key[i]] for index, element in enumerate(vals): if element == vals[i]: vals[index] = value self.setValue(key[i], self.values[key[i]]) for v in vals: if not type(v) in [int]: v = int(v) self.resize(vals[0], vals[1]) self.move(vals[2], vals[3]) if __name__=='__main__': self.show() else: self.signals.emit('showLayout', self.key, 'show') @property def copyright(self): return self._copyright @property def name(self): return self._name @name.setter def name(self, newName): self._name = newName # ------------------------------------------------------------------------------------------------------------- # Created by panda on 27/10/2019 - 6:53 PM # © 2017 - 2018 DAMGteam. All rights reserved
class ToolButton(QToolButton): Type = 'DAMGUI' key = 'ToolButton' _name = 'DAMG Tool Button' _copyright = __copyright__ def __init__(self, text, parent=None): QToolButton.__init__(self) self.parent = parent self.signals = SignalManager(self) self.settings = Settings(SETTING_FILEPTH['app'], ST_FORMAT['ini'], self) self.resize(40, 40) self.setText(text) self.values = dict(w=self.width(), h=self.height(), x=self.x(), y=self.y()) def sizeHint(self): size = super(ToolButton, self).sizeHint() size.setHeight(size.height()) size.setWidth(max(size.width(), size.height())) return size def setValue(self, key, value): return self.settings.initSetValue(key, value, self.key) def getValue(self, key): return self.settings.initValue(key, self.key) def moveEvent(self, event): if self.settings._settingEnable: self.setValue('x', self.x()) self.setValue('y', self.y()) def resizeEvent(self, event): if self.settings._settingEnable: self.setValue('w', self.width()) self.setValue('h', self.height()) def closeEvent(self, event): if __name__ == '__main__': self.close() else: self.signals.emit('showLayout', self.key, 'hide') def hideEvent(self, event): if __name__ == '__main__': self.hide() else: if self.settings._settingEnable: for key, value in self.values.items(): self.setValue(key, value) self.signals.emit('showLayout', self.key, 'hide') def showEvent(self, event): if self.settings._settingEnable: w = self.getValue('w') h = self.getValue('h') x = self.getValue('x') y = self.getValue('x') vals = [w, h, x, y] for i in range(len(vals)): if vals[i] is None: key = [k for k in self.values.keys()] value = self.values[key[i]] for index, element in enumerate(vals): if element == vals[i]: vals[index] = value self.setValue(key[i], self.values[key[i]]) for v in vals: if not type(v) in [int]: v = int(v) self.resize(vals[0], vals[1]) self.move(vals[2], vals[3]) if __name__ == '__main__': self.show() else: self.signals.emit('showLayout', self.key, 'show') @property def copyright(self): return self._copyright @property def name(self): return self._name @name.setter def name(self, newName): self._name = newName # ------------------------------------------------------------------------------------------------------------- # Created by panda on 18/07/2018 - 8:37 AM # © 2017 - 2018 DAMGteam. All rights reserved
class Button(QPushButton): Type = 'DAMGUI' key = 'Button' _name = 'DAMG Button' _copyright = __copyright__ def __init__(self, preset={}, parent=None): super(Button, self).__init__(parent) self.signals = SignalManager(self) self.settings = Settings(SETTING_FILEPTH['app'], ST_FORMAT['ini'], self) self.values = dict(w=self.width(), h=self.height(), x=self.x(), y=self.y()) self.preset = preset if check_preset(self.preset): self.procedural() def procedural(self): for key, value in self.preset.items(): if key == 'txt': self.setText(value) elif key == 'tt': self.setToolTip(value) elif key == 'cl': self.clicked.connect(value) elif key == 'icon': self.setIcon(AppIcon(32, value)) elif key == 'tag': self.setIcon(TagIcon(value)) elif key == 'icon24': self.setIcon(AppIcon(24, value)) elif key == 'fix': self.setFixedSize(value) elif key == 'ics': self.setIconSize(value) elif key == 'stt': self.setToolTip(value) else: print( "PresetKeyError at {0}: No such key registed in preset: {1}: {2}" .format(__name__, key, value)) def sizeHint(self): size = super(Button, self).sizeHint() size.setHeight(size.height()) size.setWidth(max(size.width(), size.height())) return size def setValue(self, key, value): return self.settings.initSetValue(key, value, self.key) def getValue(self, key): return self.settings.initValue(key, self.key) def moveEvent(self, event): if self.settings._settingEnable: self.setValue('x', self.x()) self.setValue('y', self.y()) def resizeEvent(self, event): if self.settings._settingEnable: self.setValue('w', self.width()) self.setValue('h', self.height()) def closeEvent(self, event): if __name__ == '__main__': self.close() else: self.signals.emit('showLayout', self.key, 'hide') def hideEvent(self, event): if __name__ == '__main__': self.hide() else: if self.settings._settingEnable: for key, value in self.values.items(): self.setValue(key, value) self.signals.emit('showLayout', self.key, 'hide') def showEvent(self, event): if self.settings._settingEnable: w = self.getValue('w') h = self.getValue('h') x = self.getValue('x') y = self.getValue('x') vals = [w, h, x, y] for i in range(len(vals)): if vals[i] is None: key = [k for k in self.values.keys()] value = self.values[key[i]] for index, element in enumerate(vals): if element == vals[i]: vals[index] = value self.setValue(key[i], self.values[key[i]]) for v in vals: if not type(v) in [int]: v = int(v) self.resize(vals[0], vals[1]) self.move(vals[2], vals[3]) if __name__ == '__main__': self.show() else: self.signals.emit('showLayout', self.key, 'show') @property def copyright(self): return self._copyright @property def name(self): return self._name @name.setter def name(self, newName): self._name = newName
class TabWidget(QTabWidget): Type = 'DAMGUI' key = 'TabWidget' _name = 'DAMG Tab Widget' _copyright = __copyright__ def __init__(self, parent=None): QTabWidget.__init__(self) self.parent = parent self.signals = SignalManager(self) self.settings = Settings(SETTING_FILEPTH['app'], ST_FORMAT['ini'], self) self.setTabPosition(self.North) self.setMovable(True) self.values = dict(w=self.width(), h=self.height(), x=self.x(), y=self.y()) def sizeHint(self): size = super(TabWidget, self).sizeHint() size.setHeight(size.height()) size.setWidth(max(size.width(), size.height())) return size def setValue(self, key, value): return self.settings.initSetValue(key, value, self.key) def getValue(self, key): return self.settings.initValue(key, self.key) def moveEvent(self, event): if self.settings._settingEnable: self.setValue('x', self.x()) self.setValue('y', self.y()) def resizeEvent(self, event): if self.settings._settingEnable: self.setValue('w', self.width()) self.setValue('h', self.height()) def closeEvent(self, event): if __name__ == '__main__': self.close() else: self.signals.emit('showLayout', self.key, 'hide') def hideEvent(self, event): if __name__ == '__main__': self.hide() else: if self.settings._settingEnable: for key, value in self.values.items(): self.setValue(key, value) self.signals.emit('showLayout', self.key, 'hide') def showEvent(self, event): if self.settings._settingEnable: w = self.getValue('w') h = self.getValue('h') x = self.getValue('x') y = self.getValue('x') vals = [w, h, x, y] for i in range(len(vals)): if vals[i] is None: key = [k for k in self.values.keys()] value = self.values[key[i]] for index, element in enumerate(vals): if element == vals[i]: vals[index] = value self.setValue(key[i], self.values[key[i]]) vals = [int(v) for v in vals] self.resize(vals[0], vals[1]) self.move(vals[2], vals[3]) if __name__ == '__main__': self.show() else: self.signals.emit('showLayout', self.key, 'show') @property def copyright(self): return self._copyright @property def name(self): return self._name @name.setter def name(self, newName): self._name = newName def getCurrentTab(self): return self.tabLst[self.currentIndex()] def getCurrentKey(self): return self.getCurrentTab().key # ------------------------------------------------------------------------------------------------------------- # Created by panda on 27/10/2019 - 4:39 PM # © 2017 - 2018 DAMGteam. All rights reserved
class ComboBox(QComboBox): Type = 'DAMGUI' key = 'ComboBox' _name = 'DAMG Combo Box' _copyright = __copyright__ def __init__(self, preset={}, parent=None): super(ComboBox, self).__init__(parent) self.signals = SignalManager(self) self.settings = Settings(SETTING_FILEPTH['app'], ST_FORMAT['ini'], self) self.parent = parent self.preset = preset if check_preset(self.preset): self.buildUI() self.values = dict(w=self.width(), h=self.height(), x=self.x(), y=self.y()) def sizeHint(self): size = super(ComboBox, self).sizeHint() size.setHeight(size.height()) size.setWidth(max(size.width(), size.height())) return size def setValue(self, key, value): return self.settings.initSetValue(key, value, self.key) def getValue(self, key): return self.settings.initValue(key, self.key) def moveEvent(self, event): if self.settings._settingEnable: self.setValue('x', self.x()) self.setValue('y', self.y()) def resizeEvent(self, event): if self.settings._settingEnable: self.setValue('w', self.width()) self.setValue('h', self.height()) def closeEvent(self, event): if __name__ == '__main__': self.close() else: self.signals.emit('showLayout', self.key, 'hide') def hideEvent(self, event): if __name__ == '__main__': self.hide() else: if self.settings._settingEnable: for key, value in self.values.items(): self.setValue(key, value) self.signals.emit('showLayout', self.key, 'hide') def showEvent(self, event): if self.settings._settingEnable: w = self.getValue('w') h = self.getValue('h') x = self.getValue('x') y = self.getValue('x') vals = [w, h, x, y] for i in range(len(vals)): if vals[i] is None: key = [k for k in self.values.keys()] value = self.values[key[i]] for index, element in enumerate(vals): if element == vals[i]: vals[index] = value self.setValue(key[i], self.values[key[i]]) for v in vals: if not type(v) in [int]: v = int(v) self.resize(vals[0], vals[1]) self.move(vals[2], vals[3]) if __name__ == '__main__': self.show() else: self.signals.emit('showLayout', self.key, 'show') @property def copyright(self): return self._copyright @property def name(self): return self._name @name.setter def name(self, newName): self._name = newName def buildUI(self): for key, value in self.preset.items(): if key == 'items': for item in value: self.addItem(item) elif key == 'editable': self.setEditable(value) elif key == 'curIndex': self.setCurrentIndex(value) elif key == 'setObjName': self.setObjectName(value) else: print("PRESETKEYERROR: There is no key in preset: {}".format( key)) # ------------------------------------------------------------------------------------------------------------- # Created by panda on 27/10/2019 - 6:55 PM # © 2017 - 2018 DAMGteam. All rights reserved
class Widget(QWidget): Type = 'DAMGWIDGET' key = 'Widget' _name = 'DAMG Widget' _copyright = __copyright__ def __init__(self, parent=None): QWidget.__init__(self) self.parent = parent self.signals = SignalManager(self) self.settings = Settings(SETTING_FILEPTH['app'], ST_FORMAT['ini'], self) self.setWindowIcon(AppIcon(32, self.key)) self.setWindowTitle(self.key) def sizeHint(self): size = super(Widget, self).sizeHint() size.setHeight(size.height()) size.setWidth(max(size.width(), size.height())) return size def setValue(self, key, value): return self.settings.initSetValue(key, value, self.key) def getValue(self, key): return self.settings.initValue(key, self.key) def moveEvent(self, event): if self.settings._settingEnable: self.setValue('x', self.x()) self.setValue('y', self.y()) def resizeEvent(self, event): if self.settings._settingEnable: self.setValue('w', self.width()) self.setValue('h', self.height()) def closeEvent(self, event): if __name__=='__main__': self.setValue('showLayout', 'close') self.close() else: self.setValue('showLayout', 'hide') self.signals.emit('showLayout', self.key, 'hide') def hideEvent(self, event): if __name__=='__main__': self.setValue('showLayout', 'hide') self.hide() else: self.setValue('showLayout', 'hide') self.signals.emit('showLayout', self.key, 'hide') def showEvent(self, event): if self.settings._settingEnable: w = self.getValue('w') h = self.getValue('h') x = self.getValue('x') y = self.getValue('x') if w is None: w = self.width() if h is None: h = self.height() if x is None: x = 0 if y is None: y = 0 self.resize(int(w), int(h)) self.move(int(x), int(h)) if __name__=='__main__': self.setValue('showLayout', 'show') self.show() else: self.setValue('showLayout', 'show') self.signals.emit('showLayout', self.key, 'show') @property def copyright(self): return self._copyright @property def name(self): return self._name @name.setter def name(self, newName): self._name = newName
class Label(QLabel): Type = 'DAMGUI' key = 'Label' _name = 'DAMG Label' _copyright = __copyright__ def __init__(self, preset={}, parent=None): QLabel.__init__(self) self.parent = parent self.preset = preset self.signals = SignalManager(self) self.settings = Settings(SETTING_FILEPTH['app'], ST_FORMAT['ini'], self) if check_preset(self.preset): self.buildUI() self.values = dict(w=self.width(), h=self.height(), x=self.x(), y=self.y()) def sizeHint(self): size = super(Label, self).sizeHint() size.setHeight(size.height()) size.setWidth(max(size.width(), size.height())) return size def setValue(self, key, value): return self.settings.initSetValue(key, value, self.key) def getValue(self, key): return self.settings.initValue(key, self.key) def moveEvent(self, event): if self.settings._settingEnable: self.setValue('x', self.x()) self.setValue('y', self.y()) def resizeEvent(self, event): if self.settings._settingEnable: self.setValue('w', self.width()) self.setValue('h', self.height()) def closeEvent(self, event): if __name__ == '__main__': self.close() else: self.signals.emit('showLayout', self.key, 'hide') def hideEvent(self, event): if __name__ == '__main__': self.hide() else: if self.settings._settingEnable: for key, value in self.values.items(): self.setValue(key, value) self.signals.emit('showLayout', self.key, 'hide') def showEvent(self, event): if self.settings._settingEnable: w = self.getValue('w') h = self.getValue('h') x = self.getValue('x') y = self.getValue('x') vals = [w, h, x, y] for i in range(len(vals)): if vals[i] is None: key = [k for k in self.values.keys()] value = self.values[key[i]] for index, element in enumerate(vals): if element == vals[i]: vals[index] = value self.setValue(key[i], self.values[key[i]]) for v in vals: if not type(v) in [int]: v = int(v) self.resize(vals[0], vals[1]) self.move(vals[2], vals[3]) if __name__ == '__main__': self.show() else: self.signals.emit('showLayout', self.key, 'show') @property def copyright(self): return self._copyright @property def name(self): return self._name @name.setter def name(self, newName): self._name = newName def buildUI(self): for key, value in self.preset.items(): if key == 'txt': self.setText(value) elif key == 'fnt': self.setFont(QFont(value)) elif key == 'alg': self.setAlignment(PRS[value]) elif key == 'wmax': self.setMaximumWidth(value) elif key == 'wmin': self.setMinimumWidth(value) elif key == 'hmin': self.setMinimumHeight(value) elif key == 'smin': self.setMinimumSize(value[0], value[1]) elif key == 'smax': self.setMaximumSize(value[0], value[1]) elif key == 'sizePolicy': self.setSizePolicy(PRS[value[0]], PRS[value[1]]) elif key == 'pxm': self.setPixmap(Pixmap(value)) elif key == 'scc': self.setScaledContents(value) elif key == 'sfs': self.setFixedSize(value[0], value[1]) elif key == 'setBuddy': self.setBuddy(value) elif key == 'link': self.setOpenExternalLinks(value) elif key == 'stt': self.setToolTip(value) elif key == 'sst': self.setStatusTip(value) elif key == 'sss': self.setStyleSheet(value) else: print( "PresetKeyError at {0}: No such key registed in preset: {1}: {2}" .format(__name__, key, value))
class LCDNumber(QLCDNumber): Type = 'DAMGUI' key = 'LCDNumber' _name = 'DAMG LCD Number' _copyright = __copyright__ def __init__(self, parent=None): QLCDNumber.__init__(self) self.parent = parent self.signals = SignalManager(self) self.settings = Settings(SETTING_FILEPTH['app'], ST_FORMAT['ini'], self) self.time = QTime() self.zone = QTimeZone() self.date = QDate() self.values = dict(w=self.width(), h=self.height(), x=self.x(), y=self.y()) def sizeHint(self): size = super(LCDNumber, self).sizeHint() size.setHeight(size.height()) size.setWidth(max(size.width(), size.height())) return size def setValue(self, key, value): return self.settings.initSetValue(key, value, self.key) def getValue(self, key): return self.settings.initValue(key, self.key) def moveEvent(self, event): if self.settings._settingEnable: self.setValue('x', self.x()) self.setValue('y', self.y()) def resizeEvent(self, event): if self.settings._settingEnable: self.setValue('w', self.width()) self.setValue('h', self.height()) def closeEvent(self, event): if __name__ == '__main__': self.close() else: self.signals.emit('showLayout', self.key, 'hide') def hideEvent(self, event): if __name__ == '__main__': self.hide() else: if self.settings._settingEnable: for key, value in self.values.items(): self.setValue(key, value) self.signals.emit('showLayout', self.key, 'hide') def showEvent(self, event): if self.settings._settingEnable: w = self.getValue('w') h = self.getValue('h') x = self.getValue('x') y = self.getValue('x') vals = [w, h, x, y] for i in range(len(vals)): if vals[i] is None: key = [k for k in self.values.keys()] value = self.values[key[i]] for index, element in enumerate(vals): if element == vals[i]: vals[index] = value self.setValue(key[i], self.values[key[i]]) for v in vals: if not type(v) in [int]: v = int(v) self.resize(vals[0], vals[1]) self.move(vals[2], vals[3]) if __name__ == '__main__': self.show() else: self.signals.emit('showLayout', self.key, 'show') @property def copyright(self): return self._copyright @property def name(self): return self._name @name.setter def name(self, newName): self._name = newName def currentTime(self): return self.time.currentTime() def currentTimeZone(self): return self.zone.utc() def currentDate(self): return self.date.currentDate()