PVPlant: shim PySide2→PySide6 en Init.py para compatibilidad FreeCAD 1.1. Archivos vuelven a usar PySide2

This commit is contained in:
Javier Braña
2026-05-03 00:41:53 +02:00
parent 74aedf6122
commit 37610302ab
7 changed files with 45 additions and 10 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ import zipfile
import tempfile import tempfile
import shutil import shutil
import xml.etree.ElementTree as ET import xml.etree.ElementTree as ET
from PySide2 import QtWidgets, QtCore, QtGui from PySide import QtWidgets, QtCore, QtGui
import FreeCAD import FreeCAD
import Mesh import Mesh
import Part import Part
+35
View File
@@ -25,6 +25,41 @@ FreeCAD.addImportType("3D Studio mesh (*.3ds)","import3DS")
FreeCAD.addImportType("SweetHome3D XML export (*.zip)","importSH3D") FreeCAD.addImportType("SweetHome3D XML export (*.zip)","importSH3D")
import os import os
import sys
# ---------------------------------------------------------------------------
# Shim PySide: FreeCAD 1.1 usa PySide6. Los archivos del workbench importan
# desde PySide o PySide2. Este parche redirige ambos a PySide6.
# ---------------------------------------------------------------------------
try:
import PySide6
# Crear alias para que from PySide import ... funcione
class _PySideShim:
pass
# Los submódulos se cargan bajo demanda
_pyside_submodules = {}
class _PySideLoader:
"""Loader que redirige PySide.X a PySide6.X"""
def __getattr__(self, name):
if name not in _pyside_submodules:
try:
_pyside_submodules[name] = getattr(PySide6, name)
except AttributeError:
# Algunos submódulos como QtWidgets tienen su propio import
try:
_pyside_submodules[name] = __import__('PySide6.' + name, fromlist=[name])
except ImportError:
raise AttributeError(f"PySide no tiene el submódulo '{name}' (PySide6 tampoco)")
return _pyside_submodules[name]
_shim = _PySideLoader()
sys.modules['PySide'] = _shim
sys.modules['PySide2'] = _shim
except ImportError:
pass
# ---------------------------------------------------------------------------
__path__ = __import__('pkgutil').extend_path(__path__, __name__) __path__ = __import__('pkgutil').extend_path(__path__, __name__)
+2 -2
View File
@@ -58,8 +58,8 @@ class MapWindow(QtGui.QWidget):
self.setupUi() self.setupUi()
def setupUi(self): def setupUi(self):
from PySide.QtWebEngineWidgets import QWebEngineView from PySide2.QtWebEngineWidgets import QWebEngineView
from PySide.QtWebChannel import QWebChannel from PySide2.QtWebChannel import QWebChannel
self.ui = FreeCADGui.PySideUic.loadUi(PVPlantResources.__dir__ + "/PVPlantGeoreferencing.ui", self) self.ui = FreeCADGui.PySideUic.loadUi(PVPlantResources.__dir__ + "/PVPlantGeoreferencing.ui", self)
+3 -3
View File
@@ -25,7 +25,7 @@ import Part
if FreeCAD.GuiUp: if FreeCAD.GuiUp:
import FreeCADGui, os import FreeCADGui, os
from PySide import QtCore, QtGui from PySide2 import QtCore, QtGui
from PySide.QtGui import QListWidgetItem from PySide.QtGui import QListWidgetItem
from PySide.QtCore import QT_TRANSLATE_NOOP from PySide.QtCore import QT_TRANSLATE_NOOP
else: else:
@@ -1164,8 +1164,8 @@ from scipy.interpolate import LinearNDInterpolator
import Part import Part
import FreeCAD import FreeCAD
import FreeCADGui import FreeCADGui
from PySide import QtCore, QtGui from PySide2 import QtCore, QtGui
from PySide.QtWidgets import QListWidgetItem from PySide2.QtWidgets import QListWidgetItem
import os import os
import PVPlantResources import PVPlantResources
+1 -1
View File
@@ -1,6 +1,6 @@
import FreeCAD import FreeCAD
import FreeCADGui import FreeCADGui
from PySide2 import QtWidgets from PySide import QtWidgets
import os import os
if FreeCAD.GuiUp: if FreeCAD.GuiUp:
+2 -2
View File
@@ -1,8 +1,8 @@
# Script para FreeCAD - Procesador de Documentos Word con Carátula # Script para FreeCAD - Procesador de Documentos Word con Carátula
import os import os
import glob import glob
from PySide import QtWidgets, QtCore from PySide2 import QtWidgets, QtCore
from PySide.QtWidgets import (QFileDialog, QMessageBox, QProgressDialog, from PySide2.QtWidgets import (QFileDialog, QMessageBox, QProgressDialog,
QApplication, QVBoxLayout, QWidget, QPushButton, QApplication, QVBoxLayout, QWidget, QPushButton,
QLabel, QTextEdit) QLabel, QTextEdit)
import FreeCAD import FreeCAD
+1 -1
View File
@@ -22,7 +22,7 @@
import FreeCAD, FreeCADGui import FreeCAD, FreeCADGui
#from freecad.trails import ICONPATH #from freecad.trails import ICONPATH
from PySide2.QtWidgets import QLabel from PySide.QtWidgets import QLabel
import copy import copy