Commit e5f73d73 authored by dmMaze's avatar dmMaze
Browse files

mitigate qt5 graphicsview rendering bug

parent 04fbdab7
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@ def main():
    else:
        os.environ['QT_API'] = args.qt_api

    os.environ["QT_ENABLE_HIGHDPI_SCALING"] = "1"

    if sys.platform == 'win32':
        import ctypes
        myappid = u'BalloonsTranslator' # arbitrary string
@@ -28,13 +26,13 @@ def main():
    from qtpy.QtCore import QTranslator, QLocale, Qt
    from qtpy.QtGui import QIcon

    QApplication.setHighDpiScaleFactorRoundingPolicy(Qt.HighDpiScaleFactorRoundingPolicy.PassThrough)

    from ui import constants
    if qtpy.API_NAME[-1] == '6':
        constants.FLAG_QT6 = True

    from ui.mainwindow import MainWindow
    else:
        QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True) #enable highdpi scaling
        QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps, True) #use highdpi icons
        QApplication.setHighDpiScaleFactorRoundingPolicy(Qt.HighDpiScaleFactorRoundingPolicy.PassThrough)

    os.chdir(constants.PROGRAM_PATH)
    app = QApplication(sys.argv)
@@ -44,7 +42,9 @@ def main():
        osp.dirname(osp.abspath(__file__)) + "/data/translate",
    )
    app.installTranslator(translator)
    # app.setAttribute(Qt.AA_UseHighDpiPixmaps, True) #use highdpi icons

    from ui.mainwindow import MainWindow
    ballontrans = MainWindow(app, open_dir=args.proj_dir)
    ballontrans.setWindowIcon(QIcon(constants.ICON_PATH))
    ballontrans.show()
+7 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ from .textitem import TextBlkItem, TextBlock
from .texteditshapecontrol import TextBlkShapeControl
from .stylewidgets import FadeLabel
from .image_edit import ImageEditMode, DrawingLayer, StrokeImgItem
from . import constants as C

CANVAS_SCALE_MAX = 3.0
CANVAS_SCALE_MIN = 0.1
@@ -113,6 +114,12 @@ class Canvas(QGraphicsScene):
        self.gv.view_resized.connect(self.onViewResized)
        self.gv.hide_canvas.connect(self.on_hide_canvas)
        self.gv.setRenderHint(QPainter.RenderHint.Antialiasing)
        
        if not C.FLAG_QT6:
            # mitigate https://bugreports.qt.io/browse/QTBUG-93417
            # produce blurred result, saving imgs remain unaffected
            self.gv.setRenderHint(QPainter.RenderHint.SmoothPixmapTransform)
        
        self.ctrl_relesed = self.gv.ctrl_released
        self.vscroll_bar = self.gv.verticalScrollBar()
        self.hscroll_bar = self.gv.horizontalScrollBar()
@@ -143,7 +150,6 @@ class Canvas(QGraphicsScene):
        self.drawingLayer = DrawingLayer()
        self.drawingLayer.setTransformationMode(Qt.TransformationMode.FastTransformation)
        self.textLayer = QGraphicsPixmapItem()
        self.textLayer.setTransformationMode(Qt.TransformationMode.SmoothTransformation)
        
        self.addItem(self.baseLayer)
        self.inpaintLayer.setParentItem(self.baseLayer)