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 shutil
import xml.etree.ElementTree as ET
from PySide2 import QtWidgets, QtCore, QtGui
from PySide import QtWidgets, QtCore, QtGui
import FreeCAD
import Mesh
import Part
+35
View File
@@ -25,6 +25,41 @@ FreeCAD.addImportType("3D Studio mesh (*.3ds)","import3DS")
FreeCAD.addImportType("SweetHome3D XML export (*.zip)","importSH3D")
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__)
+2 -2
View File
@@ -58,8 +58,8 @@ class MapWindow(QtGui.QWidget):
self.setupUi()
def setupUi(self):
from PySide.QtWebEngineWidgets import QWebEngineView
from PySide.QtWebChannel import QWebChannel
from PySide2.QtWebEngineWidgets import QWebEngineView
from PySide2.QtWebChannel import QWebChannel
self.ui = FreeCADGui.PySideUic.loadUi(PVPlantResources.__dir__ + "/PVPlantGeoreferencing.ui", self)
+3 -3
View File
@@ -25,7 +25,7 @@ import Part
if FreeCAD.GuiUp:
import FreeCADGui, os
from PySide import QtCore, QtGui
from PySide2 import QtCore, QtGui
from PySide.QtGui import QListWidgetItem
from PySide.QtCore import QT_TRANSLATE_NOOP
else:
@@ -1164,8 +1164,8 @@ from scipy.interpolate import LinearNDInterpolator
import Part
import FreeCAD
import FreeCADGui
from PySide import QtCore, QtGui
from PySide.QtWidgets import QListWidgetItem
from PySide2 import QtCore, QtGui
from PySide2.QtWidgets import QListWidgetItem
import os
import PVPlantResources
+1 -1
View File
@@ -1,6 +1,6 @@
import FreeCAD
import FreeCADGui
from PySide2 import QtWidgets
from PySide import QtWidgets
import os
if FreeCAD.GuiUp:
+2 -2
View File
@@ -1,8 +1,8 @@
# Script para FreeCAD - Procesador de Documentos Word con Carátula
import os
import glob
from PySide import QtWidgets, QtCore
from PySide.QtWidgets import (QFileDialog, QMessageBox, QProgressDialog,
from PySide2 import QtWidgets, QtCore
from PySide2.QtWidgets import (QFileDialog, QMessageBox, QProgressDialog,
QApplication, QVBoxLayout, QWidget, QPushButton,
QLabel, QTextEdit)
import FreeCAD
+1 -1
View File
@@ -22,7 +22,7 @@
import FreeCAD, FreeCADGui
#from freecad.trails import ICONPATH
from PySide2.QtWidgets import QLabel
from PySide.QtWidgets import QLabel
import copy