From f839b314786a795efbee2f336e401bad60425400 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 10 May 2019 17:15:33 +0200 Subject: [PATCH] py3/py2: use exec as function --- src/Gui/WidgetFactory.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Gui/WidgetFactory.cpp b/src/Gui/WidgetFactory.cpp index 99e3f7ef29..4207d26070 100644 --- a/src/Gui/WidgetFactory.cpp +++ b/src/Gui/WidgetFactory.cpp @@ -680,7 +680,10 @@ Py::Object PySideUicModule::loadUiType(const Py::Tuple& args) str << "import pyside2uic\n" << "from PySide2 import QtCore, QtGui, QtWidgets\n" << "import xml.etree.ElementTree as xml\n" - << "from cStringIO import StringIO\n" + << "try:\n" + << " from cStringIO import StringIO\n" + << "except:\n" + << " from io import StringIO\n" << "\n" << "uiFile = \"" << file.c_str() << "\"\n" << "parsed = xml.parse(uiFile)\n" @@ -691,7 +694,7 @@ Py::Object PySideUicModule::loadUiType(const Py::Tuple& args) << " frame = {}\n" << " pyside2uic.compileUi(f, o, indent=0)\n" << " pyc = compile(o.getvalue(), '', 'exec')\n" - << " exec pyc in frame\n" + << " exec(pyc, frame)\n" << " #Fetch the base_class and form class based on their type in the xml from designer\n" << " form_class = frame['Ui_%s'%form_class]\n" << " base_class = eval('QtWidgets.%s'%widget_class)\n"; @@ -699,7 +702,10 @@ Py::Object PySideUicModule::loadUiType(const Py::Tuple& args) str << "import pysideuic\n" << "from PySide import QtCore, QtGui\n" << "import xml.etree.ElementTree as xml\n" - << "from cStringIO import StringIO\n" + << "try:\n" + << " from cStringIO import StringIO\n" + << "except:\n" + << " from io import StringIO\n" << "\n" << "uiFile = \"" << file.c_str() << "\"\n" << "parsed = xml.parse(uiFile)\n" @@ -710,7 +716,7 @@ Py::Object PySideUicModule::loadUiType(const Py::Tuple& args) << " frame = {}\n" << " pysideuic.compileUi(f, o, indent=0)\n" << " pyc = compile(o.getvalue(), '', 'exec')\n" - << " exec pyc in frame\n" + << " exec(pyc, frame)\n" << " #Fetch the base_class and form class based on their type in the xml from designer\n" << " form_class = frame['Ui_%s'%form_class]\n" << " base_class = eval('QtGui.%s'%widget_class)\n";