def changeRendering(self): if parameters.instance.use_OpenGL: self.ui.previousData.setViewport( QGLWidget(QGLFormat(QGL.SampleBuffers))) self.ui.currentData.setViewport( QGLWidget(QGLFormat(QGL.SampleBuffers))) else: self.ui.previousData.setViewport(QWidget()) self.ui.currentData.setViewport(QWidget())
def __init__(self, thread, parent): QDialog.__init__(self, parent) self.ui = Ui_PlotPreview() self.ui.setupUi(self) self.parent = parent icon = QIcon() icon.addPixmap(QPixmap(":/icons/reload.png"), QIcon.Normal, QIcon.Off) self.update_btn = QPushButton(icon, "Update") self.ui.buttonBox.addButton(self.update_btn, QDialogButtonBox.ApplyRole) self.update_btn.clicked.connect(self.render_image) self._pix = None self._image_list = None self._thread = thread self.scene = QGraphicsScene() self.scene.setSceneRect(0,0,1,1) self.ui.imageView.setScene(self.scene) self.pix_item = None self.ui.imageView.setEnabled(False) self.ui.imageView.setInteractive(False) self.ui.imageView.setDragMode(QGraphicsView.ScrollHandDrag) self.pic_w = None self.pic_c = None self.show_pic_w = None self.show_pic_c = None timer = QTimer(self) timer.setSingleShot(True) timer.setInterval(500) self.timer = timer timer.timeout.connect(self.render_image) if parameters.instance.use_OpenGL: self.ui.imageView.setViewport(QGLWidget(QGLFormat(QGL.SampleBuffers)))
def __init__(self, scene, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) # self.windowTitleChanged.connect(self.onWindowTitleChange) self.setWindowTitle("timeline0") toolbar = QToolBar("och") toolbar.setIconSize(QSize(20, 20)) self.addToolBar(toolbar) button_action = QAction(QIcon("balance.png"), "ochtuse", self) button_action.setStatusTip("och, just do something") button_action.triggered.connect(self.onMyToolBarButtonClick) button_action.setCheckable(True) # button_action.setShortcut(QKeySequence("Ctrl+p")) # button_action.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_P)) button_action.setShortcut(QKeySequence.Print) toolbar.addAction(button_action) toolbar.addWidget(QLabel("OCH")) toolbar.addWidget(QCheckBox()) self.setStatusBar(QStatusBar(self)) menu = self.menuBar() file_menu = menu.addMenu("&File") file_menu.addAction(button_action) file_menu.addSeparator() file_menu.addMenu("Do not push") # file_menu.addAction() self._scene = scene gfx = self._gfx = QGraphicsView(self) # label = QLabel("och!") # label.setAlignment(Qt.AlignCenter) # ref https://doc.qt.io/archives/qq/qq26-openglcanvas.html self.setCentralWidget(gfx) fmt = QGLFormat(QGL.SampleBuffers) wdgt = QGLWidget(fmt) assert (wdgt.isValid()) gfx.setViewport(wdgt) gfx.setViewportUpdateMode(QGraphicsView.FullViewportUpdate) gfx.setScene(scene) # populate fills the scene with interesting stuff. self.populate() # Make it bigger self.setWindowState(Qt.WindowMaximized) # Well... it's going to have an animation, ok? # So, I set a timer to 1 second self.animator = QTimer() # And when it triggers, it calls the animate method self.animator.timeout.connect(self.animate) # And I animate it once manually. self.animate()
def __init__(self, color, pieceItems): super().__init__() self._color = color self.resize(800, 800) self.scene = QGraphicsScene() layout = QVBoxLayout(self) self.view = _MyView(self) layout.addWidget(self.view) self.view.setScene(self.scene) self._view_widget = QGLWidget() self.view.setViewport(self._view_widget) self.view.setMouseTracking(True) gry = sum(color) / 3.0 if (gry < 168): bg = [224,]*3 else: bg = [128,]*3 self.scene.setBackgroundBrush(QBrush(QColor(*bg))) self.setup_scene(self.scene, pieceItems) d = self.piece_diag self.view.scale(60./d, 60./d) self._hover_radius = 1.0 self.selected_item_ids = []
def __init__(self): # init the widget #QWidget.__init__(self, parent) # set up the scene self.scene = QGraphicsScene() self.scene.setSceneRect(0, 0, 800, 600) # add a view of that scene self.view = QGraphicsView() self.view.setScene(self.scene) self.view.setRenderHint(QPainter.Antialiasing) self.view.setFixedSize(800, 600) self.view.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.view.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) # set the screen sync to vertical retrace val = "1" # Set for nVidia linux os.environ["__GL_SYNC_TO_VBLANK"] = val # Set for recent linux Mesa DRI Radeon os.environ["LIBGL_SYNC_REFRESH"] = val qglf = QGLFormat() qglf.setSampleBuffers(True) self.glw = QGLWidget(qglf) self.glw.setAutoBufferSwap(False) self.view.setViewport(self.glw) #self.view.showFullScreen() self.view.show() self.last_finish = 0 QTimer.singleShot(0, self.glw.swapBuffers)
def __init__(self, *args, **kwargs): super(QFramesInTracksView, self).__init__(*args, **kwargs) fmt = QGLFormat(QGL.SampleBuffers) wdgt = QGLWidget(fmt) assert (wdgt.isValid()) self.setViewport(wdgt) self.setViewportUpdateMode(QGraphicsView.FullViewportUpdate) self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOn) self.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded) self.setRenderHints(QPainter.Antialiasing)
def __init__(self, parent=None): super(View, self).__init__(parent) #self.resize(600,300) self.viewport = QGLWidget() self.setViewport(self.viewport) self.setFixedSize(700, 400) self.setAlignment(Qt.AlignTop | Qt.AlignLeft) self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.setWindowTitle('Pong') self.setWindowIcon(QIcon('pong.bmp')) self.setRenderHint(QPainter.Antialiasing)
def __init__(self, *args): QGraphicsView.__init__(self, *args) #self._input_tracker = InputTracker(self, accepts=[Qt.Key_Space]) # geht nich -- Fehler & weisses Fenster -- Bug in Ubuntu self.gl_widget = QGLWidget() self.setViewport(self.gl_widget) #self.setRenderHints(QPainter.Antialiasing | QPainter.SmoothPixmapTransform | QPainter.HighQualityAntialiasing) self._is_view_all = False self.setMouseTracking(True) self.pan_active = False self._prev_mouse_pos = None self._last_zoom_level = 1.0
def __init__(self, data, parent=None, useOpenGL=True): GraphicsView.__init__(self, parent, useOpenGL) self.scene().removeItem(self.centralWidget) self.enableMouse = True self.setViewport(QGLWidget() if useOpenGL else QWidget()) self.setAlignment(Qt.AlignLeft | Qt.AlignTop) self.data = data self.hBox = 20 self.vBox = 20 self.maxItemPerRow = 3 self.setScene(QGraphicsScene) self.scene().setItemIndexMethod(QGraphicsScene.BspTreeIndex)
def __init__(self, parent=None): """ On initialization, we need to bind the Ctrl/command key to enable manipulation of the view. """ QGraphicsView.__init__(self, parent) self.setTransformationAnchor(QGraphicsView.AnchorUnderMouse) self.setRubberBandSelectionMode(Qt.IntersectsItemShape) self.setStyleSheet( "QGraphicsView { background-color: rgb(96.5%, 96.5%, 96.5%); }") self._noDrag = QGraphicsView.RubberBandDrag self._yesDrag = QGraphicsView.ScrollHandDrag # reset things that are state dependent self.clearGraphicsView() self._x0 = 0 self._y0 = 0 self._scale_size = 1.0 self._scale_limit_max = 3.0 self._scale_limit_min = 0.41 self._scaleUpRate = 0.01 self._scaleDownRate = 0.01 self._scaleFitFactor = 1 # sets initial zoom level self._showDetails = True self._last_scale_factor = 0.0 self.sceneRootItem = None # the item to transform # Keyboard panning self._key_pan_delta_x = styles.PATH_BASE_WIDTH * 21 self._key_pan_delta_y = styles.PATH_HELIX_HEIGHT + styles.PATH_HELIX_PADDING / 2 # Modifier keys and buttons self._key_mod = Qt.Key_Control self._button_pan = Qt.LeftButton self._button_pan_alt = Qt.MidButton self._button_zoom = Qt.RightButton self.toolbar = None # custom hack for the paint tool palette self._name = None if GL: self.setViewport(QGLWidget(QGLFormat(QGL.SampleBuffers))) self.setViewportUpdateMode(QGraphicsView.FullViewportUpdate) else: self.setViewportUpdateMode(QGraphicsView.MinimalViewportUpdate)
def __init__(self, parent, cropModel, imagescene2d): """ Constructs a view upon a ImageScene2D imagescene2d -- a ImgeScene2D instance """ QGraphicsView.__init__(self, parent) # We can't use OpenGL because the HUD doesn't render properly on top. # Maybe this will be fixed in Qt5? if False: self.setViewport(QGLWidget()) self.setScene(imagescene2d) self.mousePos = QPointF(0,0) # FIXME: These int members shadow QWidget.x() and QWidget.y(), which can lead to confusion when debugging... self.x, self.y = (0,0) self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self._isRubberBandZoom = False self._cursorBackup = None #these attributes are exposed as public properties above self._sliceShape = None #2D shape of this view's shown image self._slices = None #number of slices that are stacked self._hud = None self._crossHairCursor = None self._sliceIntersectionMarker = None self._ticker = QTimer(self) self._ticker.timeout.connect(self._tickerEvent) # # Setup the Viewport for fast painting # #With these flags turned on we could handle the drawing of the #white background ourselves thus removing the flicker #when scrolling fast through the slices #self.viewport().setAttribute(Qt.WA_OpaquePaintEvent) #self.viewport().setAttribute(Qt.WA_NoSystemBackground) #self.viewport().setAttribute(Qt.WA_PaintOnScreen) #self.viewport().setAutoFillBackground(False) self.setViewportUpdateMode(QGraphicsView.MinimalViewportUpdate) #as rescaling images is slow if done in software, #we use Qt's built-in background caching mode so that the cached #image need only be blitted on the screen when we only move #the cursor self.setCacheMode(QGraphicsView.CacheBackground) self.setRenderHint(QPainter.Antialiasing, False) self._crossHairCursor = CrossHairCursor(self.scene()) self._crossHairCursor.setZValue(99) self.posModel = self.scene()._posModel self.axis = self.scene()._along[1] - 1 # axis is 0,1,2 for X,Y,Z self._sliceIntersectionMarker = SliceIntersectionMarker(self.scene(), self.axis, self.posModel) self._sliceIntersectionMarker.setZValue(100) self._sliceIntersectionMarker.setVisible(True) self._croppingMarkers = CroppingMarkers( self.scene(), self.axis, cropModel ) #FIXME: this should be private, but is currently used from # within the image scene renderer self.tempImageItems = [] self._zoomFactor = 1.0 #for panning self._lastPanPoint = QPoint() self._dragMode = False self._deltaPan = QPointF(0,0) #FIXME: Is there are more elegant way to handle this? self.setMouseTracking(True) # invisible cursor to enable custom cursor self._hiddenCursor = QCursor(Qt.BlankCursor)