PySide6: Fixes #13533: QSvgWidget is not a child of QtSvg in PySide6 (#13554)

* Create a compatibility module QtSvgWidgets.py to handle PySide2 & PySide6
* In the Arch and Material modules use the QtSvgWidgets module
* Since Qt6 the method QFont.setWeight() doesn't accept an int any more but requires an enum. Since the call of QFont.setBold(True) sets
  a weight of 75 the extra calls of QFont.setWeight(75) can be safely removed

Co-authored-by: Adrián Insaurralde Avalos <36372335+adrianinsaval@users.noreply.github.com>
This commit is contained in:
wwmayer
2024-04-23 00:35:33 +02:00
committed by GitHub
parent 5e11e5da5a
commit c4c453312d
6 changed files with 15 additions and 11 deletions

View File

@@ -89,6 +89,12 @@ macro(SetupShibokenAndPyside)
file(WRITE ${CMAKE_BINARY_DIR}/Ext/PySide/QtSvg.py "from PySide${PYSIDE_MAJOR_VERSION}.QtSvg import *\n")
file(WRITE ${CMAKE_BINARY_DIR}/Ext/PySide/QtUiTools.py "from PySide${PYSIDE_MAJOR_VERSION}.QtUiTools import *\n")
file(WRITE ${CMAKE_BINARY_DIR}/Ext/PySide/QtWidgets.py "from PySide${PYSIDE_MAJOR_VERSION}.QtWidgets import *\n")
if(PYSIDE_MAJOR_VERSION LESS 6)
file(WRITE ${CMAKE_BINARY_DIR}/Ext/PySide/QtSvgWidgets.py "from PySide${PYSIDE_MAJOR_VERSION}.QtSvg import QGraphicsSvgItem\n"
"from PySide${PYSIDE_MAJOR_VERSION}.QtSvg import QSvgWidget\n")
else()
file(WRITE ${CMAKE_BINARY_DIR}/Ext/PySide/QtSvgWidgets.py "from PySide${PYSIDE_MAJOR_VERSION}.QtSvgWidgets import *\n")
endif()
endif()
if(APPLE AND NOT BUILD_WITH_CONDA)

View File

@@ -777,14 +777,14 @@ class _PrecastTaskPanel:
def __init__(self):
import FreeCADGui
from PySide import QtCore,QtGui,QtSvg
from PySide import QtCore,QtGui,QtSvgWidgets
self.form = QtGui.QWidget()
self.grid = QtGui.QGridLayout(self.form)
self.PrecastTypes = ["Beam","I-Beam","Pillar","Panel","Slab","Stairs"]
self.SlabTypes = ["Champagne","Hat"]
# image display
self.preview = QtSvg.QSvgWidget(":/ui/ParametersBeam.svg")
self.preview = QtSvgWidgets.QSvgWidget(":/ui/ParametersBeam.svg")
self.preview.setMaximumWidth(200)
self.preview.setMinimumHeight(120)
self.grid.addWidget(self.preview,0,0,1,2)
@@ -1263,7 +1263,7 @@ class _DentsTaskPanel:
def __init__(self):
import FreeCADGui
from PySide import QtCore,QtGui,QtSvg
from PySide import QtCore,QtGui,QtSvgWidgets
self.form = QtGui.QWidget()
self.grid = QtGui.QGridLayout(self.form)
self.Rotations = ["N","S","E","O"]
@@ -1282,7 +1282,7 @@ class _DentsTaskPanel:
self.grid.addWidget(self.buttonRemove,2,1,1,1)
# image display
self.preview = QtSvg.QSvgWidget(":/ui/ParametersDent.svg")
self.preview = QtSvgWidgets.QSvgWidget(":/ui/ParametersDent.svg")
self.preview.setMaximumWidth(200)
self.preview.setMinimumHeight(120)
self.grid.addWidget(self.preview,3,0,1,2)

View File

@@ -34,7 +34,7 @@ from draftutils.messages import _wrn
if FreeCAD.GuiUp:
import FreeCADGui
from PySide import QtCore, QtGui, QtSvg
from PySide import QtCore, QtGui, QtSvgWidgets
from draftutils.translate import translate
from PySide.QtCore import QT_TRANSLATE_NOOP
import draftguitools.gui_trackers as DraftTrackers
@@ -426,7 +426,7 @@ class _CommandWindow:
self.pic.hide()
# SVG display
self.im = QtSvg.QSvgWidget(":/ui/ParametersWindowFixed.svg")
self.im = QtSvgWidgets.QSvgWidget(":/ui/ParametersWindowFixed.svg")
self.im.setMaximumWidth(200)
self.im.setMinimumHeight(120)
grid.addWidget(self.im,4,0,1,2)

View File

@@ -1795,7 +1795,6 @@ def explorer(filename,schema="IFC2X3_TC1.exp"):
tree.headerItem().setText(1, "")
tree.headerItem().setText(2, "Item and Properties")
bold = QtGui.QFont()
bold.setWeight(75)
bold.setBold(True)
#print(ifc.Entities)

View File

@@ -312,7 +312,6 @@ class DraftToolBar:
self.promptlabel = self._label("promptlabel", self.layout, hide=task)
self.cmdlabel = self._label("cmdlabel", self.layout, hide=task)
boldtxt = QtGui.QFont()
boldtxt.setWeight(75)
boldtxt.setBold(True)
self.cmdlabel.setFont(boldtxt)

View File

@@ -27,7 +27,7 @@ __url__ = "https://www.freecad.org"
import os
from pathlib import PurePath
import sys
from PySide import QtCore, QtGui, QtSvg
from PySide import QtCore, QtGui, QtSvgWidgets
import FreeCAD
import FreeCADGui
@@ -92,11 +92,11 @@ class MaterialEditor:
treeView = widget.treeView
# create preview svg slots
self.widget.PreviewRender = QtSvg.QSvgWidget(self.iconPath + "preview-rendered.svg")
self.widget.PreviewRender = QtSvgWidgets.QSvgWidget(self.iconPath + "preview-rendered.svg")
self.widget.PreviewRender.setMaximumWidth(64)
self.widget.PreviewRender.setMinimumHeight(64)
self.widget.topLayout.addWidget(self.widget.PreviewRender)
self.widget.PreviewVector = QtSvg.QSvgWidget(self.iconPath + "preview-vector.svg")
self.widget.PreviewVector = QtSvgWidgets.QSvgWidget(self.iconPath + "preview-vector.svg")
self.widget.PreviewVector.setMaximumWidth(64)
self.widget.PreviewVector.setMinimumHeight(64)
self.widget.topLayout.addWidget(self.widget.PreviewVector)