def setBoundings(self, **kwargs): logger.info('%s := %s', self.__class__.__qualname__, fmt(kwargs)) if 'r' in kwargs: self._r = kwargs.get('r') if 'R' in kwargs: self._R = kwargs.get('R') if self._engine: self._engine.update(**kwargs)
def __init__(self, cfg, r, dr, spacing=0, margin=0, parent=None): logger.info('%s init', self.__class__.__qualname__) super().__init__(parent) self.cfg = cfg if parent is not None: self.setMargin(margin) self.r = r self.dr = dr self.setSpacing(spacing) self.sectors = []
def __init__(self, slicee, r=None, R=None, gs=None, parent=None): logger.info('%s init', self.__class__.__qualname__) self._engine = SliceLayoutEngine(r=r, R=R, spacing=4) super().__init__(parent) self.sty = gs.sty['Bud'] self.cfg = gs.cfg self.text = gs.bud['slices'][0].get('name') self._text_rf = QRect(0, 0, 16, 16) self.font = QFont(str(self.sty['Text']['font']), self._text_rf.height()) self.build(slicee)
def keyPressEvent(self, e, gs=None): # Tab, Space -- out of questions as used by Qt (and me in future) # to choose/press UI elements if e.key() in [Qt.Key_Escape, Qt.Key_Return]: qApp.quit() if e.modifiers() == Qt.ShiftModifier and e.key() == Qt.Key_K: print("K") e.accept() logger.info("{:x} + {:x}".format(int(e.modifiers()), int(e.key()))) a = actions.get(gs.kmp.get( (int(e.modifiers()), int( e.key() )) )) if hasattr(a, '__call__'): a()
def __init__(self, sgm, **kwargs): logger.info('%s init: %s', self.__class__.__qualname__, str(sgm)) super().__init__(**kwargs) self.sty = self.gs.sty['Segment'] self.sgm = sgm self._text_rf = QRect(0, 0, 16, 16) self.font = QFont(str(self.sty['Text']['font']), self._text_rf.height()) self._regime = 'normal' self._path = None # self.setMouseTracking(True) # self.setFlags(QGraphicsItem.ItemIsSelectable | # QGraphicsItem.ItemIsMovable) # self.setAcceptDrops(True) self.setAcceptHoverEvents(True)
def __init__(self, name="", act=None, parent=None): logger.info('%s init: %s', self.__class__.__qualname__, name) super().__init__(parent) self.sty = self.gs.sty['Segment'] self.setText(name) self.doAction = act self.regime = 'normal' self.gPath = None self.gText = QRect(0, 0, 20, 20) self.setFont(QtGui.QFont('Ubuntu', 16)) self.setMouseTracking(True) self.resize(self.sizeHint())
def resizeEvent(self, e): sz = e.size() logger.info('%s: resize %s, %s', self.__class__.__qualname__, fmt(sz), fmt(self.scene().sceneRect())) # CHG: fast (no bud recreation) but blur fonts after scaling # THINK: may it be useful for wide scene? # TODO: remove it when port all to QGraphics.. # self.fitInView(self.scene().sceneRect(), Qt.KeepAspectRatio) # NOTE: eliminates possibility for scrollbars and shrinking # NOTE: for asymetric scene anyway will grow similarly in all # directions self.scene().setSceneRect(-sz.width()/2, -sz.height()/2, sz.width(), sz.height()) # self._wdg.setGeometry(0, 0, sz.width(), sz.height()) # rrf = QRectF(80, 80, sz.width(), sz.height()) # self._wdg.geometryChanged.emit() # self._wdg.setGeometry(rrf) # self._wdg.geometryChanged.emit() # self._wdg.setGeometry(QRectF(0, 0, sz.width(), sz.height())) # self.centerOn(0, 0) # self._wdg.layout().updateGeometry() super().resizeEvent(e)
def __init__(self, gs=None, parent=None): logger.info('%s init', self.__class__.__qualname__) super().__init__(parent) self.sty = gs.sty['Bud'] self.cfg = gs.cfg self.setStyleSheet("background:transparent") self.name = gs.bud['slices'][0].get('name', "slice") # None ring = gs.bud['slices'][0]['rings'][0] a = int(self.cfg['Window']['size']) self.r = (0.3 * a) // 2 self.dr = (0.7 * a) // 2 pie = PieLayout(self.cfg, self.r, self.dr, 0) for segment in ring['segments']: btn = SegmentWidget(segment.name, lambda a=segment.action: sendKey(a)) if not bool(self.cfg['Window']['no_tooltip']): btn.setToolTip(segment.tooltip) pie.addWidget(btn) self.setLayout(pie) self.setFont(QtGui.QFont('Ubuntu', 16))
def __init__(self, wdg, parent=None): logger.info('%s: init', self.__class__.__qualname__) super().__init__(parent) self._setup() self._compose(wdg) self.setMouseTracking(True)
def __init__(self): logger.info('%s init', self.__class__.__qualname__) super().__init__() self._setupWindow() self._attachElements() self._setupContextMenu()
def __init__(self, scene, parent=None): logger.info('%s init', self.__class__.__qualname__) super().__init__(parent) self._setup() self.setScene(scene) self.resize(scene.width(), scene.height())
def update(self, **kw): logger.info('%s update %s', self.__class__.__qualname__, fmt(kw)) if not self.setup(kw) or not self.items: return self.applyToItems()
def __init__(self, parent=None): logger.info('%s init', self.__class__.__qualname__) super().__init__(parent) self.wdg = None self.setLayout(QtWidgets.QStackedLayout()) self.setStyleSheet("background:transparent")
def __init__(self): logger.info('%s init', self.__class__.__qualname__) super().__init__() self._setupWindow() self._compose() self._setupContextMenu()
def __init__(self, gs, parent=None): super().__init__(parent) # NEED: QStackedLayout logger.info('%s init', self.__class__.__qualname__) slices = gs.bud['slices'][0] self._slice = SliceWidget(slices, r=50, R=200, parent=self)
def refreshBuds(self): logger.info('%s: buds', self.__class__.__qualname__)
def boundings(self): logger.info('%s <R,A> %f', self.__class__.__qualname__, self._A) r, R = super().boundings() return (r, R, self._a, self._A)
def __init__(self, ring, **kw): engine = RingLayoutEngine(r=kw.get('r'), R=kw.get('R')) super().__init__(engine=engine, **kw) logger.info('%s init', self.__class__.__qualname__) self.build(ring)