mirror of
https://github.com/Xevion/sharex-quickzoom.git
synced 2025-12-15 04:13:11 -06:00
latest changes for GraphicsScene fix
This commit is contained in:
@@ -1,14 +1,33 @@
|
||||
from PyQt5 import QtWidgets, QtCore
|
||||
from PyQt5 import QtWidgets, QtCore, QtGui
|
||||
from ui.mainwindow import Ui_MainWindow
|
||||
from ui.aboutform import Ui_AboutForm
|
||||
import sys
|
||||
from PIL import Image, ImageQt
|
||||
|
||||
# Simple About Window class
|
||||
class AboutWindow(QtWidgets.QMainWindow):
|
||||
def __init__(self):
|
||||
super(AboutWindow, self).__init__()
|
||||
self.ui = Ui_AboutForm()
|
||||
self.ui.setupUi(self)
|
||||
|
||||
# Custom GraphicsScene
|
||||
class GraphicsScene(QtWidgets.QGraphicsScene):
|
||||
def __init__(self, parent=None):
|
||||
QtWidgets.QGraphicsScene.__init__(self, parent)
|
||||
# Mysterious suff stuff that fixes it
|
||||
self.setSceneRect(-100, -100, 200, 200)
|
||||
# Dimensions
|
||||
self.x, self.y = 30, 30
|
||||
|
||||
def mouseMoveEvent(self, event):
|
||||
self.clear()
|
||||
x = event.scenePos().x()
|
||||
y = event.scenePos().y()
|
||||
self.addRect(x-(self.x // 2), y - (self.y // 2), self.x, self.y, QtCore.Qt.black)
|
||||
# self.addRect(QtCore.QRectF(QtCore.QPointF(x, y), QtCore.QSizeF(10, 10)), QtCore.Qt.black)
|
||||
# self.addEllipse(x-2, y-2, 4, 4, QtCore.Qt.black, QtGui.QBrush(QtCore.Qt.black))
|
||||
|
||||
class Window(QtWidgets.QMainWindow):
|
||||
def __init__(self):
|
||||
super(Window, self).__init__()
|
||||
@@ -16,26 +35,49 @@ class Window(QtWidgets.QMainWindow):
|
||||
self.aboutui = AboutWindow()
|
||||
self.ui.setupUi(self)
|
||||
self.initUI()
|
||||
|
||||
self.ui.scene = GraphicsScene()
|
||||
self.ui.graphicsView.setScene(self.ui.scene)
|
||||
print(dir(self.ui.scene))
|
||||
|
||||
# self.ui.graphicsView = QtWidgets.QGraphicsView(self.ui.scene)
|
||||
# self.ui.graphicsView.setGeometry(QtCore.QRect(20, 10, 571, 400))
|
||||
# self.ui.graphicsView.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.CrossCursor))
|
||||
# self.ui.graphicsView.setMouseTracking(True)
|
||||
# self.ui.graphicsView.setObjectName("graphicsView")
|
||||
|
||||
|
||||
def initUI(self):
|
||||
self.ui.graphicsView.viewport().installEventFilter(self)
|
||||
# About tab
|
||||
self.ui.actionAbout.triggered.connect(lambda : self.aboutui.show())
|
||||
self.show()
|
||||
self.pen = QtCore.Qt.black
|
||||
self.img = ImageQt.ImageQt(Image.open('ui/images/sharex.png'))
|
||||
|
||||
def redraw(self, event):
|
||||
return
|
||||
self.ui.scene.clear()
|
||||
# Draw Rect
|
||||
import random
|
||||
r = QtCore.QRectF(QtCore.QPointF(event.x(), event.y()), QtCore.QSizeF(10, 10))
|
||||
self.ui.scene.addRect(r, self.pen)
|
||||
pixMap = QtGui.QPixmap.fromImage(self.img)
|
||||
self.ui.scene.addPixmap(pixMap)
|
||||
|
||||
def eventFilter(self, source, e):
|
||||
if e.type() == QtCore.QEvent.MouseMove:
|
||||
if e.buttons() == QtCore.Qt.NoButton:
|
||||
pass
|
||||
self.redraw(e)
|
||||
elif e.buttons() == QtCore.Qt.LeftButton:
|
||||
pass
|
||||
elif e.buttons() == QtCore.Qt.RightButton:
|
||||
pass
|
||||
elif e.type() == QtCore.QEvent.MouseButtonPress:
|
||||
if e.button() == QtCore.Qt.LeftButton:
|
||||
print(f'Left Click at ({e.x()}, {e.y()})')
|
||||
pass
|
||||
elif e.button() == QtCore.Qt.RightButton:
|
||||
print(f'Right Click at ({e.x()}, {e.y()})')
|
||||
pass
|
||||
return super(Window, self).eventFilter(source, e)
|
||||
|
||||
def run():
|
||||
|
||||
Reference in New Issue
Block a user