From 53299edc7085edffcc8107a18a21b91cd8d21a77 Mon Sep 17 00:00:00 2001 From: "Egli Adrian (IT-SCI-API-PFI)" <adrian.egli@sbb.ch> Date: Thu, 23 May 2019 11:22:02 +0200 Subject: [PATCH] code cleaned --- examples/demo.py | 2 +- flatland/utils/render_qt.py | 33 +++++++++++++++++---------------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/examples/demo.py b/examples/demo.py index c40cebfc..84c9cd2f 100644 --- a/examples/demo.py +++ b/examples/demo.py @@ -192,7 +192,7 @@ class Demo: break -if False: +if True: demo_000 = Demo(Scenario_Generator.generate_random_scenario()) demo_000.run_demo() demo_000 = None diff --git a/flatland/utils/render_qt.py b/flatland/utils/render_qt.py index 2a4a02a7..60e147d0 100644 --- a/flatland/utils/render_qt.py +++ b/flatland/utils/render_qt.py @@ -11,6 +11,19 @@ from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QGridLayout from PyQt5 import QtSvg +def transform_string_svg(sSVG): + sSVG = sSVG.replace("ASCII", "UTF-8") + bySVG = bytearray(sSVG, encoding='utf-8') + return bySVG + +def create_QtSvgWidget_from_svg_string(sSVG): + svgWidget = QtSvg.QSvgWidget() + ret = svgWidget.renderer().load(transform_string_svg(sSVG)) + if ret == False: + print("create_QtSvgWidget_from_svg_string : failed to parse:", sSVG) + return svgWidget + + class QTGL(GraphicsLayer): def __init__(self, width, height): self.cell_pixels = 60 @@ -129,13 +142,7 @@ class QTSVG(GraphicsLayer): if False: for binTrans in self.track.dSvg.keys(): sSVG = self.track.dSvg[binTrans].to_string() - - bySVG = bytearray(sSVG, encoding='utf-8') - - svgWidget = QtSvg.QSvgWidget() - svgWidget.renderer().load(bySVG) - print(iRow, iCol) - self.layout.addWidget(svgWidget, iRow, iCol) + self.layout.addWidget(create_QtSvgWidget_from_svg_string(sSVG), iRow, iCol) iArt += 1 iRow = int(iArt / nCols) @@ -170,10 +177,7 @@ class QTSVG(GraphicsLayer): def setRailAt(self, row, col, binTrans): if binTrans in self.track.dSvg: sSVG = self.track.dSvg[binTrans].to_string() - sSVG = sSVG.replace("ASCII", "UTF-8") - bySVG = bytearray(sSVG, encoding='utf-8') - svgWidget = QtSvg.QSvgWidget() - svgWidget.renderer().load(bySVG) + svgWidget = create_QtSvgWidget_from_svg_string(sSVG) self.layout.addWidget(svgWidget, row, col) self.lwTrack.append(svgWidget) else: @@ -200,8 +204,7 @@ class QTSVG(GraphicsLayer): agentPrev.direction = iDirOut agentPrev.old_direction = iDirIn sSVG = self.zug.getSvg(iAgent, iDirIn, iDirOut, color=color).to_string() - bySVG = bytearray(sSVG, encoding='utf-8') - wAgent.renderer().load(bySVG) + wAgent.renderer().load(transform_string_svg(sSVG)) return # Ensure we have adequate slots in the list lwAgents @@ -211,9 +214,7 @@ class QTSVG(GraphicsLayer): # Create a new widget for the agent sSVG = self.zug.getSvg(iAgent, iDirIn, iDirOut, color=color).to_string() - bySVG = bytearray(sSVG, encoding='utf-8') - svgWidget = QtSvg.QSvgWidget() - svgWidget.renderer().load(bySVG) + svgWidget = create_QtSvgWidget_from_svg_string(sSVG) self.lwAgents[iAgent] = svgWidget self.agents_prev[iAgent] = EnvAgent((row, col), iDirOut, (0, 0), old_direction=iDirIn) self.layout.addWidget(svgWidget, row, col) -- GitLab