def sobj_tab_middle_mouse_event(self, event): if event.button() == QtCore.Qt.MouseButton.MiddleButton: pos = event.pos() # This is because hamburger button tab_pos = self.sObjTabWidget.tabBar().tabAt( QtCore.QPoint(pos.x() - 26, pos.y())) if tab_pos != -1: widget = self.sObjTabWidget.widget(tab_pos) tab = self.get_stype_tab_by_widget(widget) self.toggle_stype_tab(tab=tab, hide=True) tree_item = self.get_tree_item_by_code(tab.stype.get_code()) if tree_item: tree_item.setCheckState(0, QtCore.Qt.Unchecked) event.accept()
def create_scene(self): self.scene_created = True self.pm1 = Pixmap(self) self.pm2 = Pixmap(self) self.pm3 = Pixmap(self) self.scene.addItem(self.pm1.pixmap_item) self.scene.addItem(self.pm2.pixmap_item) self.scene.addItem(self.pm3.pixmap_item) # animation self.machine = QtCore.QStateMachine() self.state1 = QtCore.QState() self.state2 = QtCore.QState() self.state3 = QtCore.QState() self.state1.assignProperty(self.pm1, 'pos', QtCore.QPoint(0, 0)) self.state1.assignProperty(self.pm1, 'opacity', 1) self.state2.assignProperty(self.pm1, 'pos', QtCore.QPoint(-255, 0)) self.state2.assignProperty(self.pm1, 'opacity', 0) self.state3.assignProperty(self.pm1, 'pos', QtCore.QPoint(255, 0)) self.state3.assignProperty(self.pm1, 'opacity', 0) self.state1.assignProperty(self.pm2, 'pos', QtCore.QPoint(255, 0)) self.state1.assignProperty(self.pm2, 'opacity', 0) self.state2.assignProperty(self.pm2, 'pos', QtCore.QPoint(0, 0)) self.state2.assignProperty(self.pm2, 'opacity', 1) self.state3.assignProperty(self.pm2, 'pos', QtCore.QPoint(-255, 0)) self.state3.assignProperty(self.pm2, 'opacity', 0) self.state1.assignProperty(self.pm3, 'pos', QtCore.QPoint(-255, 0)) self.state1.assignProperty(self.pm3, 'opacity', 0) self.state2.assignProperty(self.pm3, 'pos', QtCore.QPoint(255, 0)) self.state2.assignProperty(self.pm3, 'opacity', 0) self.state3.assignProperty(self.pm3, 'pos', QtCore.QPoint(0, 0)) self.state3.assignProperty(self.pm3, 'opacity', 1) self.pm1_anm = QtCore.QPropertyAnimation(self.pm1, 'pos', self) self.pm1_anm.setEasingCurve(QtCore.QEasingCurve.OutExpo) self.pm1_anm.setDuration(300) self.pm1_anm_o = QtCore.QPropertyAnimation(self.pm1, 'opacity', self) self.pm1_anm_o.setEasingCurve(QtCore.QEasingCurve.OutExpo) self.pm1_anm_o.setDuration(200) self.pm2_anm = QtCore.QPropertyAnimation(self.pm2, 'pos', self) self.pm2_anm.setEasingCurve(QtCore.QEasingCurve.OutExpo) self.pm2_anm.setDuration(300) self.pm2_anm_o = QtCore.QPropertyAnimation(self.pm2, 'opacity', self) self.pm2_anm_o.setEasingCurve(QtCore.QEasingCurve.OutExpo) self.pm2_anm_o.setDuration(200) self.pm3_anm = QtCore.QPropertyAnimation(self.pm3, 'pos', self) self.pm3_anm.setEasingCurve(QtCore.QEasingCurve.OutExpo) self.pm3_anm.setDuration(300) self.pm3_anm_o = QtCore.QPropertyAnimation(self.pm3, 'opacity', self) self.pm3_anm_o.setEasingCurve(QtCore.QEasingCurve.OutExpo) self.pm3_anm_o.setDuration(200) self.t4 = self.state1.addTransition(self.value_decreased, self.state3) self.t4.addAnimation(self.pm1_anm) self.t4.addAnimation(self.pm1_anm_o) self.t4.addAnimation(self.pm2_anm) self.t4.addAnimation(self.pm2_anm_o) self.t4.addAnimation(self.pm3_anm) self.t4.addAnimation(self.pm3_anm_o) self.t5 = self.state2.addTransition(self.value_decreased, self.state1) self.t5.addAnimation(self.pm1_anm) self.t5.addAnimation(self.pm1_anm_o) self.t5.addAnimation(self.pm2_anm) self.t5.addAnimation(self.pm2_anm_o) self.t5.addAnimation(self.pm3_anm) self.t5.addAnimation(self.pm3_anm_o) self.t6 = self.state3.addTransition(self.value_decreased, self.state2) self.t6.addAnimation(self.pm1_anm) self.t6.addAnimation(self.pm1_anm_o) self.t6.addAnimation(self.pm2_anm) self.t6.addAnimation(self.pm2_anm_o) self.t6.addAnimation(self.pm3_anm) self.t6.addAnimation(self.pm3_anm_o) self.t1 = self.state1.addTransition(self.value_increased, self.state2) self.t1.addAnimation(self.pm1_anm) self.t1.addAnimation(self.pm1_anm_o) self.t1.addAnimation(self.pm2_anm) self.t1.addAnimation(self.pm2_anm_o) self.t1.addAnimation(self.pm3_anm) self.t1.addAnimation(self.pm3_anm_o) self.t2 = self.state2.addTransition(self.value_increased, self.state3) self.t2.addAnimation(self.pm1_anm) self.t2.addAnimation(self.pm1_anm_o) self.t2.addAnimation(self.pm2_anm) self.t2.addAnimation(self.pm2_anm_o) self.t2.addAnimation(self.pm3_anm) self.t2.addAnimation(self.pm3_anm_o) self.t3 = self.state3.addTransition(self.value_increased, self.state1) self.t3.addAnimation(self.pm1_anm) self.t3.addAnimation(self.pm1_anm_o) self.t3.addAnimation(self.pm2_anm) self.t3.addAnimation(self.pm2_anm_o) self.t3.addAnimation(self.pm3_anm) self.t3.addAnimation(self.pm3_anm_o) # initial fill if self.pix_list: self.pm_list = [self.pm1, self.pm2, self.pm3] for i, pm in enumerate(self.pm_list): pixmap = Qt4Gui.QPixmap(self.pix_list[i % len(self.pix_list)]) if not pixmap.isNull(): pm.add_pixmap(pixmap.scaledToWidth(640, QtCore.Qt.SmoothTransformation)) self.previewGraphicsView.setSceneRect(self.pm1.pixmap_item.boundingRect()) self.previewGraphicsView.fitInView(self.pm1.pixmap_item.boundingRect(), QtCore.Qt.KeepAspectRatio) self.imagesSlider.setValue(0) if not self.machine.isRunning(): self.machine.addState(self.state1) self.machine.addState(self.state2) self.machine.addState(self.state3) self.machine.setInitialState(self.state1) self.machine.start()
def doLayout(self, rect, testOnly=False): left, top, right, bottom = self.getContentsMargins() effectiveRect = rect x = effectiveRect.x() y = effectiveRect.y() lineHeight = 0 itemSize = self.m_minSize if self.itemList: itemSize = QtCore.QSize( max([ self.m_minSize.width(), min([ self.m_maxSize.width(), self.itemList[0].sizeHint().width() ]) ]), max([ self.m_minSize.height(), min([ self.m_maxSize.height(), self.itemList[0].sizeHint().height() ]) ])) lineItemCount = min([(effectiveRect.width() + self.spacing()) // (itemSize.width() + self.spacing()), self.count()]) if self.m_maxItemPerLine >= 1: if lineItemCount > self.m_maxItemPerLine: lineItemCount = self.m_maxItemPerLine elif self.m_maxItemPerLine == -1: if lineItemCount > self.m_maxItemPerLineDefaultMax: lineItemCount = self.m_maxItemPerLineDefaultMax elif self.m_maxItemPerLine < -1: for i in range(self.m_maxItemPerLineDefaultMin): if self.m_minSize.width() * i <= effectiveRect.width( ) <= self.m_maxSize.width() * i: lineItemCount = i break if lineItemCount < 1: lineItemCount = 1 lineCount = math.ceil(len(self.itemList) / lineItemCount) freeWidth = effectiveRect.width() - (itemSize.width() + self.spacing()) * lineItemCount itemSize = QtCore.QSize( max([ self.m_minSize.width(), min([ self.m_maxSize.width(), itemSize.width() + freeWidth / lineItemCount ]) ]), max([ self.m_minSize.height(), min([ self.m_maxSize.height(), itemSize.height() + freeWidth / lineItemCount ]) ])) itemIndex = 0 for line in range(int(lineCount)): lineX = x for lineItem in range(lineItemCount): item = self.itemAt(itemIndex) if not item: break itemIndex += 1 itemWidget = item.widget() if not testOnly: pos = QtCore.QPoint(lineX, y) lineX += itemSize.width() + self.spacing() itemGeometry = QtCore.QRect(pos, itemSize) itemWidget.setSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) itemWidget.setMinimumSize(self.m_minSize) itemWidget.setMaximumSize(self.m_maxSize) item.setGeometry(itemGeometry) y += itemSize.height() + self.spacing() return y + lineHeight - rect.y() + bottom
def create_scene(self): self.scene.clear() # self.scene.setBackgroundBrush(QtCore.Qt.black) self.pm1 = Pixmap() self.pm2 = Pixmap() self.pm3 = Pixmap() self.scene.addItem(self.pm1.pixmap_item) self.scene.addItem(self.pm2.pixmap_item) self.scene.addItem(self.pm3.pixmap_item) # animation self.machine = QtCore.QStateMachine() self.state1 = QtCore.QState(self.machine) self.state2 = QtCore.QState(self.machine) self.state3 = QtCore.QState(self.machine) self.state1.assignProperty(self.pm1, 'pos', QtCore.QPoint(0, 0)) self.state1.assignProperty(self.pm1, 'opacity', 1) self.state2.assignProperty(self.pm1, 'pos', QtCore.QPoint(-255, 0)) self.state2.assignProperty(self.pm1, 'opacity', 0) self.state3.assignProperty(self.pm1, 'pos', QtCore.QPoint(255, 0)) self.state3.assignProperty(self.pm1, 'opacity', 0) self.state1.assignProperty(self.pm2, 'pos', QtCore.QPoint(255, 0)) self.state1.assignProperty(self.pm2, 'opacity', 0) self.state2.assignProperty(self.pm2, 'pos', QtCore.QPoint(0, 0)) self.state2.assignProperty(self.pm2, 'opacity', 1) self.state3.assignProperty(self.pm2, 'pos', QtCore.QPoint(-255, 0)) self.state3.assignProperty(self.pm2, 'opacity', 0) self.state1.assignProperty(self.pm3, 'pos', QtCore.QPoint(-255, 0)) self.state1.assignProperty(self.pm3, 'opacity', 0) self.state2.assignProperty(self.pm3, 'pos', QtCore.QPoint(255, 0)) self.state2.assignProperty(self.pm3, 'opacity', 0) self.state3.assignProperty(self.pm3, 'pos', QtCore.QPoint(0, 0)) self.state3.assignProperty(self.pm3, 'opacity', 1) self.machine.setInitialState(self.state1) self.pm1_anm = QtCore.QPropertyAnimation(self.pm1, 'pos', self) self.pm1_anm.setEasingCurve(QtCore.QEasingCurve.OutExpo) self.pm1_anm.setDuration(300) self.pm1_anm_o = QtCore.QPropertyAnimation(self.pm1, 'opacity', self) self.pm1_anm_o.setEasingCurve(QtCore.QEasingCurve.OutExpo) self.pm1_anm_o.setDuration(200) self.pm2_anm = QtCore.QPropertyAnimation(self.pm2, 'pos', self) self.pm2_anm.setEasingCurve(QtCore.QEasingCurve.OutExpo) self.pm2_anm.setDuration(300) self.pm2_anm_o = QtCore.QPropertyAnimation(self.pm2, 'opacity', self) self.pm2_anm_o.setEasingCurve(QtCore.QEasingCurve.OutExpo) self.pm2_anm_o.setDuration(200) self.pm3_anm = QtCore.QPropertyAnimation(self.pm3, 'pos', self) self.pm3_anm.setEasingCurve(QtCore.QEasingCurve.OutExpo) self.pm3_anm.setDuration(300) self.pm3_anm_o = QtCore.QPropertyAnimation(self.pm3, 'opacity', self) self.pm3_anm_o.setEasingCurve(QtCore.QEasingCurve.OutExpo) self.pm3_anm_o.setDuration(200) self.t4 = self.state1.addTransition(self.value_decreased, self.state3) self.t4.addAnimation(self.pm1_anm) self.t4.addAnimation(self.pm1_anm_o) self.t4.addAnimation(self.pm2_anm) self.t4.addAnimation(self.pm2_anm_o) self.t4.addAnimation(self.pm3_anm) self.t4.addAnimation(self.pm3_anm_o) self.t5 = self.state2.addTransition(self.value_decreased, self.state1) self.t5.addAnimation(self.pm1_anm) self.t5.addAnimation(self.pm1_anm_o) self.t5.addAnimation(self.pm2_anm) self.t5.addAnimation(self.pm2_anm_o) self.t5.addAnimation(self.pm3_anm) self.t5.addAnimation(self.pm3_anm_o) self.t6 = self.state3.addTransition(self.value_decreased, self.state2) self.t6.addAnimation(self.pm1_anm) self.t6.addAnimation(self.pm1_anm_o) self.t6.addAnimation(self.pm2_anm) self.t6.addAnimation(self.pm2_anm_o) self.t6.addAnimation(self.pm3_anm) self.t6.addAnimation(self.pm3_anm_o) self.t1 = self.state1.addTransition(self.value_increased, self.state2) self.t1.addAnimation(self.pm1_anm) self.t1.addAnimation(self.pm1_anm_o) self.t1.addAnimation(self.pm2_anm) self.t1.addAnimation(self.pm2_anm_o) self.t1.addAnimation(self.pm3_anm) self.t1.addAnimation(self.pm3_anm_o) self.t2 = self.state2.addTransition(self.value_increased, self.state3) self.t2.addAnimation(self.pm1_anm) self.t2.addAnimation(self.pm1_anm_o) self.t2.addAnimation(self.pm2_anm) self.t2.addAnimation(self.pm2_anm_o) self.t2.addAnimation(self.pm3_anm) self.t2.addAnimation(self.pm3_anm_o) self.t3 = self.state3.addTransition(self.value_increased, self.state1) self.t3.addAnimation(self.pm1_anm) self.t3.addAnimation(self.pm1_anm_o) self.t3.addAnimation(self.pm2_anm) self.t3.addAnimation(self.pm2_anm_o) self.t3.addAnimation(self.pm3_anm) self.t3.addAnimation(self.pm3_anm_o) # initial fill if self.pix_list: self.pm_list = [self.pm1, self.pm2, self.pm3] for i, pm in enumerate(self.pm_list): pm.add_pixmap(self.pix_list[i % len(self.pix_list)]) self.previewGraphicsView.setSceneRect( self.pm1.pixmap_item.boundingRect()) self.previewGraphicsView.fitInView( self.pm1.pixmap_item.boundingRect(), QtCore.Qt.KeepAspectRatio) self.imagesSlider.setValue(0)