From 839fb176496da968441675f73b542add4e77c1c3 Mon Sep 17 00:00:00 2001 From: Ladislav Michl Date: Thu, 25 Jan 2024 13:01:43 +0100 Subject: [PATCH] Draft: Use widgets from QtWidgets --- src/Mod/Draft/DraftGui.py | 113 +++++++++--------- .../gui_annotationstyleeditor.py | 30 ++--- src/Mod/Draft/draftguitools/gui_edit.py | 4 +- src/Mod/Draft/draftguitools/gui_groups.py | 10 +- src/Mod/Draft/draftguitools/gui_layers.py | 36 +++--- src/Mod/Draft/draftguitools/gui_lineslope.py | 12 +- src/Mod/Draft/draftguitools/gui_setstyle.py | 11 +- src/Mod/Draft/draftguitools/gui_snapper.py | 5 +- src/Mod/Draft/drafttaskpanels/task_scale.py | 29 ++--- .../Draft/drafttaskpanels/task_selectplane.py | 2 +- .../Draft/draftutils/init_draft_statusbar.py | 33 ++--- src/Mod/Draft/draftutils/params.py | 12 +- src/Mod/Draft/draftutils/translate.py | 12 +- src/Mod/Draft/importDXF.py | 24 ++-- src/Mod/Draft/importSVG.py | 12 +- 15 files changed, 176 insertions(+), 169 deletions(-) diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py index 326b7a5a1c..4748012a98 100644 --- a/src/Mod/Draft/DraftGui.py +++ b/src/Mod/Draft/DraftGui.py @@ -41,6 +41,7 @@ import sys import math import PySide.QtCore as QtCore import PySide.QtGui as QtGui +import PySide.QtWidgets as QtWidgets import FreeCAD import FreeCADGui @@ -83,7 +84,7 @@ def _get_incmd_shortcut(itm): # Customized widgets #--------------------------------------------------------------------------- -class DraftBaseWidget(QtGui.QWidget): +class DraftBaseWidget(QtWidgets.QWidget): def __init__(self,parent = None): super().__init__(parent) def eventFilter(self, widget, event): @@ -106,7 +107,7 @@ class DraftDockWidget(DraftBaseWidget): else: super().changeEvent(event) -class DraftLineEdit(QtGui.QLineEdit): +class DraftLineEdit(QtWidgets.QLineEdit): """custom QLineEdit widget that has the power to catch Escape keypress""" def __init__(self, parent=None): super().__init__(parent) @@ -130,7 +131,7 @@ class DraftTaskPanel: else: self.form = widget def getStandardButtons(self): - return int(QtGui.QDialogButtonBox.Close) + return int(QtWidgets.QDialogButtonBox.Close) def accept(self): if hasattr(FreeCADGui,"draftToolBar"): return FreeCADGui.draftToolBar.validatePoint() @@ -203,7 +204,7 @@ class DraftToolBar: # add only a dummy widget, since widgets are created on demand self.baseWidget = DraftBaseWidget() - self.tray = QtGui.QToolBar(None) + self.tray = QtWidgets.QToolBar(None) self.tray.setObjectName("Draft tray") self.tray.setWindowTitle("Draft tray") self.toptray = self.tray @@ -221,7 +222,7 @@ class DraftToolBar: def _pushbutton(self,name, layout, hide=True, icon=None, width=None, checkable=False, square=False): - button = QtGui.QPushButton(self.baseWidget) + button = QtWidgets.QPushButton(self.baseWidget) button.setObjectName(name) if square: button.setMaximumSize(QtCore.QSize(button.height(), button.height())) @@ -241,7 +242,7 @@ class DraftToolBar: return button def _label (self,name, layout, hide=True, wrap=False): - label = QtGui.QLabel(self.baseWidget) + label = QtWidgets.QLabel(self.baseWidget) label.setObjectName(name) if wrap: label.setWordWrap(True) @@ -264,8 +265,8 @@ class DraftToolBar: inputfield.setObjectName(name) if hide: inputfield.hide() if not width: - sizePolicy = QtGui.QSizePolicy( - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred) + sizePolicy = QtWidgets.QSizePolicy( + QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred) inputfield.setSizePolicy(sizePolicy) inputfield.setMinimumWidth(110) else: @@ -276,10 +277,10 @@ class DraftToolBar: def _spinbox (self,name, layout, val=None, vmax=None, hide=True, double=False, size=None): if double: - sbox = QtGui.QDoubleSpinBox(self.baseWidget) + sbox = QtWidgets.QDoubleSpinBox(self.baseWidget) sbox.setDecimals(params.get_param("Decimals", path="Units")) else: - sbox = QtGui.QSpinBox(self.baseWidget) + sbox = QtWidgets.QSpinBox(self.baseWidget) sbox.setObjectName(name) if vmax: sbox.setMaximum(vmax) if val: sbox.setValue(val) @@ -289,7 +290,7 @@ class DraftToolBar: return sbox def _checkbox (self,name, layout, checked=True, hide=True): - chk = QtGui.QCheckBox(self.baseWidget) + chk = QtWidgets.QCheckBox(self.baseWidget) chk.setChecked(checked) chk.setObjectName(name) if hide: chk.hide() @@ -297,7 +298,7 @@ class DraftToolBar: return chk def _combo (self,name,layout,hide=True): - cb = QtGui.QComboBox(self.baseWidget) + cb = QtWidgets.QComboBox(self.baseWidget) cb.setObjectName(name) if hide: cb.hide() layout.addWidget(cb) @@ -316,10 +317,10 @@ class DraftToolBar: # point - xl = QtGui.QHBoxLayout() - yl = QtGui.QHBoxLayout() - zl = QtGui.QHBoxLayout() - bl = QtGui.QHBoxLayout() + xl = QtWidgets.QHBoxLayout() + yl = QtWidgets.QHBoxLayout() + zl = QtWidgets.QHBoxLayout() + bl = QtWidgets.QHBoxLayout() self.layout.addLayout(xl) self.layout.addLayout(yl) self.layout.addLayout(zl) @@ -340,19 +341,19 @@ class DraftToolBar: # text - self.textValue = QtGui.QTextEdit(self.baseWidget) + self.textValue = QtWidgets.QTextEdit(self.baseWidget) self.textValue.setObjectName("textValue") self.textValue.setTabChangesFocus(True) self.layout.addWidget(self.textValue) self.textValue.hide() - tl = QtGui.QHBoxLayout() + tl = QtWidgets.QHBoxLayout() self.layout.addLayout(tl) self.textOkButton = self._pushbutton("textButton", tl, icon="button_valid") # additional line controls - ll = QtGui.QHBoxLayout() - al = QtGui.QHBoxLayout() + ll = QtWidgets.QHBoxLayout() + al = QtWidgets.QHBoxLayout() self.layout.addLayout(ll) self.layout.addLayout(al) self.labellength = self._label("labellength", ll) @@ -366,33 +367,33 @@ class DraftToolBar: # options - fl = QtGui.QHBoxLayout() + fl = QtWidgets.QHBoxLayout() self.layout.addLayout(fl) self.numFacesLabel = self._label("numfaceslabel", fl) self.numFaces = self._spinbox("numFaces", fl, 3) - ol = QtGui.QHBoxLayout() + ol = QtWidgets.QHBoxLayout() self.layout.addLayout(ol) - rl = QtGui.QHBoxLayout() + rl = QtWidgets.QHBoxLayout() self.layout.addLayout(rl) self.labelRadius = self._label("labelRadius", rl) self.radiusValue = self._inputfield("radiusValue", rl) self.radiusValue.setText(FreeCAD.Units.Quantity(0,FreeCAD.Units.Length).UserString) - bl = QtGui.QHBoxLayout() + bl = QtWidgets.QHBoxLayout() self.layout.addLayout(bl) self.undoButton = self._pushbutton("undoButton", bl, icon='Draft_Rotate') - bl = QtGui.QHBoxLayout() + bl = QtWidgets.QHBoxLayout() self.layout.addLayout(bl) self.finishButton = self._pushbutton("finishButton", bl, icon='Draft_Finish') - bl = QtGui.QHBoxLayout() + bl = QtWidgets.QHBoxLayout() self.layout.addLayout(bl) self.closeButton = self._pushbutton("closeButton", bl, icon='Draft_Lock') - bl = QtGui.QHBoxLayout() + bl = QtWidgets.QHBoxLayout() self.layout.addLayout(bl) self.wipeButton = self._pushbutton("wipeButton", bl, icon='Draft_Wipe') - bl = QtGui.QHBoxLayout() + bl = QtWidgets.QHBoxLayout() self.layout.addLayout(bl) self.orientWPButton = self._pushbutton("orientWPButton", bl, icon='Draft_SelectPlane') - bl = QtGui.QHBoxLayout() + bl = QtWidgets.QHBoxLayout() self.layout.addLayout(bl) self.selectButton = self._pushbutton("selectButton", bl, icon='view-select') @@ -424,8 +425,8 @@ class DraftToolBar: checked=params.get_param("SubelementMode")) # spacer - spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, - QtGui.QSizePolicy.Expanding) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, + QtWidgets.QSizePolicy.Expanding) self.layout.addItem(spacerItem) QtCore.QObject.connect(self.xValue,QtCore.SIGNAL("valueChanged(double)"),self.changeXValue) @@ -620,7 +621,7 @@ class DraftToolBar: self.isTaskOn = True todo.delay(FreeCADGui.Control.closeDialog,None) self.baseWidget = DraftBaseWidget() - self.layout = QtGui.QVBoxLayout(self.baseWidget) + self.layout = QtWidgets.QVBoxLayout(self.baseWidget) self.setupToolBar(task=True) self.retranslateUi(self.baseWidget) self.panel = DraftTaskPanel(self.baseWidget,extra) @@ -753,10 +754,10 @@ class DraftToolBar: self.xValue.selectAll() def labelUi(self,title=translate("draft","Label"),callback=None): - w = QtGui.QWidget() + w = QtWidgets.QWidget() w.setWindowTitle(translate("draft","Label type")) - l = QtGui.QVBoxLayout(w) - combo = QtGui.QComboBox() + l = QtWidgets.QVBoxLayout(w) + combo = QtWidgets.QComboBox() from draftobjects.label import get_label_types types = get_label_types() for s in types: @@ -788,7 +789,7 @@ class DraftToolBar: self.pointcallback = None self.mask = None self.isTaskOn = False - self.baseWidget = QtGui.QWidget() + self.baseWidget = QtWidgets.QWidget() def trimUi(self,title=translate("draft","Trimex")): self.taskUi(title, icon="Draft_Trimex") @@ -906,9 +907,9 @@ class DraftToolBar: def relocate(self): """relocates the right-aligned buttons depending on the toolbar size""" if self.baseWidget.geometry().width() < 400: - self.layout.setDirection(QtGui.QBoxLayout.TopToBottom) + self.layout.setDirection(QtWidgets.QBoxLayout.TopToBottom) else: - self.layout.setDirection(QtGui.QBoxLayout.LeftToRight) + self.layout.setDirection(QtWidgets.QBoxLayout.LeftToRight) def makeDumbTask(self, extra=None, on_close_call=None): """create a dumb taskdialog to prevent deleting the temp object""" @@ -918,7 +919,7 @@ class DraftToolBar: self.form = [extra] self.callback = callback def getStandardButtons(self): - return int(QtGui.QDialogButtonBox.Close) + return int(QtWidgets.QDialogButtonBox.Close) def reject(self): if self.callback: self.callback() @@ -1355,11 +1356,11 @@ class DraftToolBar: if hasattr(self.panel,"form"): if isinstance(self.panel.form,list): for w in self.panel.form: - c = w.findChild(QtGui.QCheckBox,"ContinueCmd") + c = w.findChild(QtWidgets.QCheckBox,"ContinueCmd") if c: c.toggle() else: - c = self.panel.form.findChild(QtGui.QCheckBox,"ContinueCmd") + c = self.panel.form.findChild(QtWidgets.QCheckBox,"ContinueCmd") if c: c.toggle() except Exception: @@ -1405,7 +1406,7 @@ class DraftToolBar: def popupMenu(self,llist,ilist=None,pos=None): """pops up a menu filled with the given list""" - self.groupmenu = QtGui.QMenu() + self.groupmenu = QtWidgets.QMenu() for i,l in enumerate(llist): if ilist: self.groupmenu.addAction(ilist[i],l) @@ -1632,26 +1633,26 @@ class FacebinderTaskPanel: def __init__(self): self.obj = None - self.form = QtGui.QWidget() + self.form = QtWidgets.QWidget() self.form.setObjectName("FacebinderTaskPanel") - self.grid = QtGui.QGridLayout(self.form) + self.grid = QtWidgets.QGridLayout(self.form) self.grid.setObjectName("grid") - self.title = QtGui.QLabel(self.form) + self.title = QtWidgets.QLabel(self.form) self.grid.addWidget(self.title, 0, 0, 1, 2) # tree - self.tree = QtGui.QTreeWidget(self.form) + self.tree = QtWidgets.QTreeWidget(self.form) self.grid.addWidget(self.tree, 1, 0, 1, 2) self.tree.setColumnCount(2) self.tree.setHeaderLabels(["Name","Subelement"]) # buttons - self.addButton = QtGui.QPushButton(self.form) + self.addButton = QtWidgets.QPushButton(self.form) self.addButton.setObjectName("addButton") self.addButton.setIcon(QtGui.QIcon(":/icons/Arch_Add.svg")) self.grid.addWidget(self.addButton, 3, 0, 1, 1) - self.delButton = QtGui.QPushButton(self.form) + self.delButton = QtWidgets.QPushButton(self.form) self.delButton.setObjectName("delButton") self.delButton.setIcon(QtGui.QIcon(":/icons/Arch_Remove.svg")) self.grid.addWidget(self.delButton, 3, 1, 1, 1) @@ -1667,7 +1668,7 @@ class FacebinderTaskPanel: return True def getStandardButtons(self): - return int(QtGui.QDialogButtonBox.Ok) + return int(QtWidgets.QDialogButtonBox.Ok) def update(self): """fills the treewidget""" @@ -1676,12 +1677,12 @@ class FacebinderTaskPanel: for f in self.obj.Faces: if isinstance(f[1],tuple): for subf in f[1]: - item = QtGui.QTreeWidgetItem(self.tree) + item = QtWidgets.QTreeWidgetItem(self.tree) item.setText(0,f[0].Name) item.setIcon(0, QtGui.QIcon(":/icons/Part_3D_object.svg")) item.setText(1,subf) else: - item = QtGui.QTreeWidgetItem(self.tree) + item = QtWidgets.QTreeWidgetItem(self.tree) item.setText(0,f[0].Name) item.setIcon(0, QtGui.QIcon(":/icons/Part_3D_object.svg")) item.setText(1,f[1]) @@ -1739,10 +1740,10 @@ class FacebinderTaskPanel: return True def retranslateUi(self, TaskPanel): - TaskPanel.setWindowTitle(QtGui.QApplication.translate("draft", "Faces", None)) - self.delButton.setText(QtGui.QApplication.translate("draft", "Remove", None)) - self.addButton.setText(QtGui.QApplication.translate("draft", "Add", None)) - self.title.setText(QtGui.QApplication.translate("draft", "Facebinder elements", None)) + TaskPanel.setWindowTitle(QtWidgets.QApplication.translate("draft", "Faces", None)) + self.delButton.setText(QtWidgets.QApplication.translate("draft", "Remove", None)) + self.addButton.setText(QtWidgets.QApplication.translate("draft", "Add", None)) + self.title.setText(QtWidgets.QApplication.translate("draft", "Facebinder elements", None)) #def translateWidget(w, context=None, disAmb=None): # '''translator for items where retranslateUi() is unavailable. @@ -1757,7 +1758,7 @@ class FacebinderTaskPanel: # w.setWindowTitle(newText) # #handle children -# wKids = w.findChildren(QtGui.QWidget) +# wKids = w.findChildren(QtWidgets.QWidget) # for i in wKids: # className = i.metaObject().className() # if hasattr(i,"text") and hasattr(i,"setText"): diff --git a/src/Mod/Draft/draftguitools/gui_annotationstyleeditor.py b/src/Mod/Draft/draftguitools/gui_annotationstyleeditor.py index d790e650d7..012f12badc 100644 --- a/src/Mod/Draft/draftguitools/gui_annotationstyleeditor.py +++ b/src/Mod/Draft/draftguitools/gui_annotationstyleeditor.py @@ -28,6 +28,8 @@ # @{ import json import PySide.QtGui as QtGui +import PySide.QtWidgets as QtWidgets + from PySide.QtCore import QT_TRANSLATE_NOOP import FreeCAD as App @@ -209,19 +211,19 @@ class AnnotationStyleEditor(gui_base.GuiCommandSimplest): self.form.pushButtonRename.setEnabled(False) elif index == 1: # Add new... entry - reply = QtGui.QInputDialog.getText(None, + reply = QtWidgets.QInputDialog.getText(None, "Create new style", "Style name:") if reply[1]: # OK or Enter pressed name = reply[0].strip() if name == "": - QtGui.QMessageBox.information(None, + QtWidgets.QMessageBox.information(None, "Style name required", "No style name specified") self.form.comboBoxStyles.setCurrentIndex(0) elif name in self.styles: - QtGui.QMessageBox.information(None, + QtWidgets.QMessageBox.information(None, "Style exists", "This style name already exists") self.form.comboBoxStyles.setCurrentIndex(0) @@ -250,12 +252,12 @@ class AnnotationStyleEditor(gui_base.GuiCommandSimplest): style = self.form.comboBoxStyles.itemText(index) if self.get_style_users(style): - reply = QtGui.QMessageBox.question(None, + reply = QtWidgets.QMessageBox.question(None, "Style in use", "This style is used by some objects in this document. Are you sure?", - QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, - QtGui.QMessageBox.No) - if reply == QtGui.QMessageBox.No: + QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No, + QtWidgets.QMessageBox.No) + if reply == QtWidgets.QMessageBox.No: return self.form.comboBoxStyles.removeItem(index) del self.styles[style] @@ -265,16 +267,16 @@ class AnnotationStyleEditor(gui_base.GuiCommandSimplest): index = self.form.comboBoxStyles.currentIndex() style = self.form.comboBoxStyles.itemText(index) - reply = QtGui.QInputDialog.getText(None, + reply = QtWidgets.QInputDialog.getText(None, "Rename style", "New name:", - QtGui.QLineEdit.Normal, + QtWidgets.QLineEdit.Normal, style) if reply[1]: # OK or Enter pressed newname = reply[0] if newname in self.styles: - reply = QtGui.QMessageBox.information(None, + reply = QtWidgets.QMessageBox.information(None, "Style exists", "This style name already exists") else: @@ -286,8 +288,8 @@ class AnnotationStyleEditor(gui_base.GuiCommandSimplest): def on_import(self): """Import styles from a json file.""" - filename = QtGui.QFileDialog.getOpenFileName( - QtGui.QApplication.activeWindow(), + filename = QtWidgets.QFileDialog.getOpenFileName( + QtWidgets.QApplication.activeWindow(), translate("draft","Open styles file"), None, translate("draft","JSON files (*.json *.JSON)")) @@ -306,8 +308,8 @@ class AnnotationStyleEditor(gui_base.GuiCommandSimplest): def on_export(self): """Export styles to a json file.""" - filename = QtGui.QFileDialog.getSaveFileName( - QtGui.QApplication.activeWindow(), + filename = QtWidgets.QFileDialog.getSaveFileName( + QtWidgets.QApplication.activeWindow(), translate("draft","Save styles file"), None, translate("draft","JSON file (*.json)")) diff --git a/src/Mod/Draft/draftguitools/gui_edit.py b/src/Mod/Draft/draftguitools/gui_edit.py index 6df36bd87a..3bdd7b088b 100644 --- a/src/Mod/Draft/draftguitools/gui_edit.py +++ b/src/Mod/Draft/draftguitools/gui_edit.py @@ -35,7 +35,7 @@ __url__ = "https://www.freecad.org" import math import pivy.coin as coin import PySide.QtCore as QtCore -import PySide.QtGui as QtGui +import PySide.QtWidgets as QtWidgets import FreeCAD as App import FreeCADGui as Gui @@ -650,7 +650,7 @@ class Edit(gui_base_original.Modifier): # ------------------------------------------------------------------------ def display_tracker_menu(self, event): - self.tracker_menu = QtGui.QMenu() + self.tracker_menu = QtWidgets.QMenu() actions = None if self.overNode: diff --git a/src/Mod/Draft/draftguitools/gui_groups.py b/src/Mod/Draft/draftguitools/gui_groups.py index e74355fc61..05ae47ed1d 100644 --- a/src/Mod/Draft/draftguitools/gui_groups.py +++ b/src/Mod/Draft/draftguitools/gui_groups.py @@ -36,7 +36,7 @@ to the construction group. # @{ import PySide.QtCore as QtCore from PySide.QtCore import QT_TRANSLATE_NOOP -from PySide import QtGui +from PySide import QtWidgets import FreeCAD as App import FreeCADGui as Gui @@ -379,11 +379,11 @@ class Ui_AddNamedGroup(): simple label and line edit in dialogbox """ def __init__(self): - self.form = QtGui.QWidget() + self.form = QtWidgets.QWidget() self.form.setWindowTitle(translate("draft", "Add group")) - row = QtGui.QHBoxLayout(self.form) - lbl = QtGui.QLabel(translate("draft", "Group name") + ":") - self.name = QtGui.QLineEdit() + row = QtWidgets.QHBoxLayout(self.form) + lbl = QtWidgets.QLabel(translate("draft", "Group name") + ":") + self.name = QtWidgets.QLineEdit() row.addWidget(lbl) row.addWidget(self.name) diff --git a/src/Mod/Draft/draftguitools/gui_layers.py b/src/Mod/Draft/draftguitools/gui_layers.py index 800c6c6091..e8f5f68ca1 100644 --- a/src/Mod/Draft/draftguitools/gui_layers.py +++ b/src/Mod/Draft/draftguitools/gui_layers.py @@ -94,7 +94,7 @@ class LayerManager: def Activated(self): - from PySide import QtCore, QtGui + from PySide import QtCore, QtGui, QtWidgets # store changes to be committed self.deleteList = [] @@ -138,7 +138,7 @@ class LayerManager: self.dialog.tree.setItemDelegate(Layers_Delegate()) self.dialog.tree.setItemsExpandable(False) self.dialog.tree.setRootIsDecorated(False) # removes spacing in first column - self.dialog.tree.setSelectionMode(QtGui.QTreeView.ExtendedSelection) # allow to select many + self.dialog.tree.setSelectionMode(QtWidgets.QTreeView.ExtendedSelection) # allow to select many # fill the tree view self.update() @@ -379,7 +379,7 @@ class LayerManager: "toggle selected layers on/off" - from PySide import QtCore, QtGui + from PySide import QtCore state = None for index in self.dialog.tree.selectedIndexes(): @@ -396,7 +396,7 @@ class LayerManager: "isolates the selected layers (turns all the others off" - from PySide import QtCore, QtGui + from PySide import QtCore onrows = [] for index in self.dialog.tree.selectedIndexes(): @@ -409,15 +409,15 @@ class LayerManager: if FreeCAD.GuiUp: - from PySide import QtCore, QtGui + from PySide import QtCore, QtGui, QtWidgets - class Layers_Delegate(QtGui.QStyledItemDelegate): + class Layers_Delegate(QtWidgets.QStyledItemDelegate): "model delegate" def __init__(self, parent=None, *args): - QtGui.QStyledItemDelegate.__init__(self, parent, *args) + QtWidgets.QStyledItemDelegate.__init__(self, parent, *args) # setEditorData() is triggered several times. # But we want to show the color dialog only the first time self.first = True @@ -425,26 +425,26 @@ if FreeCAD.GuiUp: def createEditor(self,parent,option,index): if index.column() == 0: # Layer on/off - editor = QtGui.QCheckBox(parent) + editor = QtWidgets.QCheckBox(parent) if index.column() == 1: # Layer name - editor = QtGui.QLineEdit(parent) + editor = QtWidgets.QLineEdit(parent) elif index.column() == 2: # Line width - editor = QtGui.QSpinBox(parent) + editor = QtWidgets.QSpinBox(parent) editor.setMaximum(99) elif index.column() == 3: # Line style - editor = QtGui.QComboBox(parent) + editor = QtWidgets.QComboBox(parent) editor.addItems(utils.DRAW_STYLES) elif index.column() == 4: # Line color - editor = QtGui.QLineEdit(parent) + editor = QtWidgets.QLineEdit(parent) self.first = True elif index.column() == 5: # Shape color - editor = QtGui.QLineEdit(parent) + editor = QtWidgets.QLineEdit(parent) self.first = True elif index.column() == 6: # Transparency - editor = QtGui.QSpinBox(parent) + editor = QtWidgets.QSpinBox(parent) editor.setMaximum(100) elif index.column() == 7: # Line print color - editor = QtGui.QLineEdit(parent) + editor = QtWidgets.QLineEdit(parent) self.first = True return editor @@ -462,14 +462,14 @@ if FreeCAD.GuiUp: editor.setText(str(index.data(QtCore.Qt.UserRole))) if self.first: c = index.data(QtCore.Qt.UserRole) - color = QtGui.QColorDialog.getColor(QtGui.QColor(int(c[0]*255),int(c[1]*255),int(c[2]*255))) + color = QtWidgets.QColorDialog.getColor(QtGui.QColor(int(c[0]*255),int(c[1]*255),int(c[2]*255))) editor.setText(str(color.getRgbF())) self.first = False elif index.column() == 5: # Shape color editor.setText(str(index.data(QtCore.Qt.UserRole))) if self.first: c = index.data(QtCore.Qt.UserRole) - color = QtGui.QColorDialog.getColor(QtGui.QColor(int(c[0]*255),int(c[1]*255),int(c[2]*255))) + color = QtWidgets.QColorDialog.getColor(QtGui.QColor(int(c[0]*255),int(c[1]*255),int(c[2]*255))) editor.setText(str(color.getRgbF())) self.first = False elif index.column() == 6: # Transparency @@ -478,7 +478,7 @@ if FreeCAD.GuiUp: editor.setText(str(index.data(QtCore.Qt.UserRole))) if self.first: c = index.data(QtCore.Qt.UserRole) - color = QtGui.QColorDialog.getColor(QtGui.QColor(int(c[0]*255),int(c[1]*255),int(c[2]*255))) + color = QtWidgets.QColorDialog.getColor(QtGui.QColor(int(c[0]*255),int(c[1]*255),int(c[2]*255))) editor.setText(str(color.getRgbF())) self.first = False diff --git a/src/Mod/Draft/draftguitools/gui_lineslope.py b/src/Mod/Draft/draftguitools/gui_lineslope.py index 443b2a1d02..b82b2b8946 100644 --- a/src/Mod/Draft/draftguitools/gui_lineslope.py +++ b/src/Mod/Draft/draftguitools/gui_lineslope.py @@ -33,7 +33,7 @@ of one of its points in the Z direction to create a sloped line. ## \addtogroup draftguitools # @{ -import PySide.QtGui as QtGui +import PySide.QtWidgets as QtWidgets from PySide.QtCore import QT_TRANSLATE_NOOP import FreeCAD as App @@ -84,13 +84,13 @@ class LineSlope(gui_base.GuiCommandNeedsSelection): # TODO: create a .ui file with QtCreator and import it here # instead of creating the interface programmatically, # see the `gui_othoarray` module for an example. - w = QtGui.QWidget() + w = QtWidgets.QWidget() w.setWindowTitle(translate("Draft", "Slope")) - layout = QtGui.QHBoxLayout(w) - label = QtGui.QLabel(w) + layout = QtWidgets.QHBoxLayout(w) + label = QtWidgets.QLabel(w) label.setText(translate("Draft", "Slope")+":") layout.addWidget(label) - self.spinbox = QtGui.QDoubleSpinBox(w) + self.spinbox = QtWidgets.QDoubleSpinBox(w) self.spinbox.setMinimum(-9999.99) self.spinbox.setMaximum(9999.99) self.spinbox.setSingleStep(0.01) @@ -107,7 +107,7 @@ class LineSlope(gui_base.GuiCommandNeedsSelection): # we must contain our interface inside a parent widget. # Then our interface must be installed in this parent widget # inside the attribute called "form". - taskwidget = QtGui.QWidget() + taskwidget = QtWidgets.QWidget() taskwidget.form = w # The "accept" attribute of the parent widget diff --git a/src/Mod/Draft/draftguitools/gui_setstyle.py b/src/Mod/Draft/draftguitools/gui_setstyle.py index 1ec1dc997a..d818001e35 100644 --- a/src/Mod/Draft/draftguitools/gui_setstyle.py +++ b/src/Mod/Draft/draftguitools/gui_setstyle.py @@ -31,6 +31,7 @@ import os from PySide import QtCore from PySide import QtGui +from PySide import QtWidgets import FreeCAD as App import FreeCADGui as Gui @@ -305,7 +306,7 @@ class Draft_SetStyle_TaskPanel: def onSaveStyle(self): - reply = QtGui.QInputDialog.getText(None, + reply = QtWidgets.QInputDialog.getText(None, translate("Draft", "Save style"), translate("Draft", "Name of this new style:")) if reply[1]: @@ -313,12 +314,12 @@ class Draft_SetStyle_TaskPanel: pdict = self.load() if pdict: if name in pdict: - reply = QtGui.QMessageBox.question(None, + reply = QtWidgets.QMessageBox.question(None, translate("Draft", "Warning"), translate("Draft", "Name exists. Overwrite?"), - QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, - QtGui.QMessageBox.No) - if reply == QtGui.QMessageBox.No: + QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No, + QtWidgets.QMessageBox.No) + if reply == QtWidgets.QMessageBox.No: return preset = self.getValues() pdict[name] = preset diff --git a/src/Mod/Draft/draftguitools/gui_snapper.py b/src/Mod/Draft/draftguitools/gui_snapper.py index fdc1483d18..96cfbb3dfa 100644 --- a/src/Mod/Draft/draftguitools/gui_snapper.py +++ b/src/Mod/Draft/draftguitools/gui_snapper.py @@ -41,6 +41,7 @@ import math import pivy.coin as coin import PySide.QtCore as QtCore import PySide.QtGui as QtGui +import PySide.QtWidgets as QtWidgets import FreeCAD as App import FreeCADGui as Gui @@ -1139,7 +1140,7 @@ class Snapper: def get_quarter_widget(self, mw): views = [] - for w in mw.findChild(QtGui.QMdiArea).findChildren(QtGui.QWidget): + for w in mw.findChild(QtWidgets.QMdiArea).findChildren(QtWidgets.QWidget): if w.inherits("SIM::Coin3D::Quarter::QuarterWidget"): views.append(w) return views @@ -1473,7 +1474,7 @@ class Snapper: """Get the snap toolbar.""" if not (hasattr(self, "toolbar") and self.toolbar): mw = Gui.getMainWindow() - self.toolbar = mw.findChild(QtGui.QToolBar, "Draft snap") + self.toolbar = mw.findChild(QtWidgets.QToolBar, "Draft snap") if self.toolbar: return self.toolbar diff --git a/src/Mod/Draft/drafttaskpanels/task_scale.py b/src/Mod/Draft/drafttaskpanels/task_scale.py index e23ec7a105..fc7739aa05 100644 --- a/src/Mod/Draft/drafttaskpanels/task_scale.py +++ b/src/Mod/Draft/drafttaskpanels/task_scale.py @@ -30,6 +30,7 @@ # @{ import PySide.QtCore as QtCore import PySide.QtGui as QtGui +import PySide.QtWidgets as QtWidgets import FreeCAD as App import FreeCADGui as Gui @@ -48,45 +49,45 @@ class ScaleTaskPanel: def __init__(self): decimals = params.get_param("Decimals", path="Units") self.sourceCmd = None - self.form = QtGui.QWidget() + self.form = QtWidgets.QWidget() self.form.setWindowIcon(QtGui.QIcon(":/icons/Draft_Scale.svg")) - layout = QtGui.QGridLayout(self.form) - self.xLabel = QtGui.QLabel() + layout = QtWidgets.QGridLayout(self.form) + self.xLabel = QtWidgets.QLabel() layout.addWidget(self.xLabel, 0, 0, 1, 1) - self.xValue = QtGui.QDoubleSpinBox() + self.xValue = QtWidgets.QDoubleSpinBox() self.xValue.setRange(0.0000001, 1000000.0) self.xValue.setDecimals(decimals) self.xValue.setValue(1) layout.addWidget(self.xValue,0,1,1,1) - self.yLabel = QtGui.QLabel() + self.yLabel = QtWidgets.QLabel() layout.addWidget(self.yLabel,1,0,1,1) - self.yValue = QtGui.QDoubleSpinBox() + self.yValue = QtWidgets.QDoubleSpinBox() self.yValue.setRange(0.0000001, 1000000.0) self.yValue.setDecimals(decimals) self.yValue.setValue(1) layout.addWidget(self.yValue,1,1,1,1) - self.zLabel = QtGui.QLabel() + self.zLabel = QtWidgets.QLabel() layout.addWidget(self.zLabel,2,0,1,1) - self.zValue = QtGui.QDoubleSpinBox() + self.zValue = QtWidgets.QDoubleSpinBox() self.zValue.setRange(0.0000001, 1000000.0) self.zValue.setDecimals(decimals) self.zValue.setValue(1) layout.addWidget(self.zValue,2,1,1,1) - self.lock = QtGui.QCheckBox() + self.lock = QtWidgets.QCheckBox() self.lock.setChecked(params.get_param("ScaleUniform")) layout.addWidget(self.lock,3,0,1,2) - self.relative = QtGui.QCheckBox() + self.relative = QtWidgets.QCheckBox() self.relative.setChecked(params.get_param("ScaleRelative")) layout.addWidget(self.relative,4,0,1,2) - self.isCopy = QtGui.QCheckBox() + self.isCopy = QtWidgets.QCheckBox() self.isCopy.setChecked(params.get_param("ScaleCopy")) layout.addWidget(self.isCopy,5,0,1,2) - self.isSubelementMode = QtGui.QCheckBox() + self.isSubelementMode = QtWidgets.QCheckBox() layout.addWidget(self.isSubelementMode,6,0,1,2) - self.isClone = QtGui.QCheckBox() + self.isClone = QtWidgets.QCheckBox() layout.addWidget(self.isClone,7,0,1,2) self.isClone.setChecked(params.get_param("ScaleClone")) - self.pickrefButton = QtGui.QPushButton() + self.pickrefButton = QtWidgets.QPushButton() layout.addWidget(self.pickrefButton,8,0,1,2) QtCore.QObject.connect(self.xValue,QtCore.SIGNAL("valueChanged(double)"),self.setValue) QtCore.QObject.connect(self.yValue,QtCore.SIGNAL("valueChanged(double)"),self.setValue) diff --git a/src/Mod/Draft/drafttaskpanels/task_selectplane.py b/src/Mod/Draft/drafttaskpanels/task_selectplane.py index 7eba90f0ee..550ea80670 100644 --- a/src/Mod/Draft/drafttaskpanels/task_selectplane.py +++ b/src/Mod/Draft/drafttaskpanels/task_selectplane.py @@ -50,6 +50,6 @@ class SelectPlaneTaskPanel: def getStandardButtons(self): """Execute to set the standard buttons.""" - return 2097152 # int(QtGui.QDialogButtonBox.Close) + return 2097152 # int(QtWidgets.QDialogButtonBox.Close) ## @} diff --git a/src/Mod/Draft/draftutils/init_draft_statusbar.py b/src/Mod/Draft/draftutils/init_draft_statusbar.py index 7b5f4b3453..e63a64c8a4 100644 --- a/src/Mod/Draft/draftutils/init_draft_statusbar.py +++ b/src/Mod/Draft/draftutils/init_draft_statusbar.py @@ -33,6 +33,7 @@ and is populated by various widgets, buttons and menus. # @{ import PySide.QtCore as QtCore import PySide.QtGui as QtGui +import PySide.QtWidgets as QtWidgets import FreeCAD as App import FreeCADGui as Gui @@ -145,13 +146,13 @@ def _set_scale(action): mw = Gui.getMainWindow() sb = mw.statusBar() - scale_widget = sb.findChild(QtGui.QToolBar,"draft_scale_widget") + scale_widget = sb.findChild(QtWidgets.QToolBar,"draft_scale_widget") if action.text() == translate("draft", "Custom"): title_text = translate("draft", "Set custom scale") dialog_text = translate("draft", "Set custom annotation scale in format x:x, x=x") - custom_scale = QtGui.QInputDialog.getText(None, title_text, dialog_text) + custom_scale = QtWidgets.QInputDialog.getText(None, title_text, dialog_text) if custom_scale[1]: print(custom_scale[0]) scale = label_to_scale(custom_scale[0]) @@ -179,7 +180,7 @@ def init_draft_statusbar_scale(): mw = Gui.getMainWindow() sb = mw.statusBar() - scale_widget = QtGui.QToolBar() + scale_widget = QtWidgets.QToolBar() scale_widget.setObjectName("draft_scale_widget") # get scales list according to system units @@ -191,10 +192,10 @@ def init_draft_statusbar_scale(): # initializes scale widget scale_widget.draft_scales = draft_scales - scaleLabel = QtGui.QPushButton("Scale") + scaleLabel = QtWidgets.QPushButton("Scale") scaleLabel.setObjectName("ScaleLabel") scaleLabel.setFlat(True) - menu = QtGui.QMenu(scaleLabel) + menu = QtWidgets.QMenu(scaleLabel) gUnits = QtGui.QActionGroup(menu) for u in draft_scales: a = QtGui.QAction(gUnits) @@ -223,7 +224,7 @@ def init_draft_statusbar_snap(): """ empty label instead of snap_widget.addSeparator() """ - label = QtGui.QLabel() + label = QtWidgets.QLabel() label.setFixedWidth(2) return label @@ -232,11 +233,11 @@ def init_draft_statusbar_snap(): # check if the toolbar is available, without it the required actions # may be missing: - if mw.findChild(QtGui.QToolBar, "Draft snap") is None: + if mw.findChild(QtWidgets.QToolBar, "Draft snap") is None: return # snap widget: - snap_widget = QtGui.QToolBar() + snap_widget = QtWidgets.QToolBar() snap_widget.setObjectName("draft_snap_widget") snap_widget.setOrientation(QtCore.Qt.Orientation.Horizontal) snap_widget.setIconSize(QtCore.QSize(16, 16)) @@ -286,11 +287,11 @@ def show_draft_statusbar(): sb = mw.statusBar() if params.get_param("DisplayStatusbarScaleWidget"): - scale_widget = sb.findChild(QtGui.QToolBar, "draft_scale_widget") + scale_widget = sb.findChild(QtWidgets.QToolBar, "draft_scale_widget") if scale_widget: scale_widget.show() else: - scale_widget = mw.findChild(QtGui.QToolBar, "draft_scale_widget") + scale_widget = mw.findChild(QtWidgets.QToolBar, "draft_scale_widget") if scale_widget: sb.insertPermanentWidget(3, scale_widget) scale_widget.show() @@ -299,12 +300,12 @@ def show_draft_statusbar(): t.singleShot(500, init_draft_statusbar_scale) if params.get_param("DisplayStatusbarSnapWidget"): - snap_widget = sb.findChild(QtGui.QToolBar, "draft_snap_widget") + snap_widget = sb.findChild(QtWidgets.QToolBar, "draft_snap_widget") if snap_widget: snap_widget.setOrientation(QtCore.Qt.Orientation.Horizontal) snap_widget.show() else: - snap_widget = mw.findChild(QtGui.QToolBar, "draft_snap_widget") + snap_widget = mw.findChild(QtWidgets.QToolBar, "draft_snap_widget") if snap_widget: sb.insertPermanentWidget(2, snap_widget) snap_widget.setOrientation(QtCore.Qt.Orientation.Horizontal) @@ -322,11 +323,11 @@ def hide_draft_statusbar(): sb = mw.statusBar() # hide scale widget - scale_widget = sb.findChild(QtGui.QToolBar, "draft_scale_widget") + scale_widget = sb.findChild(QtWidgets.QToolBar, "draft_scale_widget") if scale_widget is None: # when switching workbenches, the toolbar sometimes "jumps" # out of the status bar to any other dock area... - scale_widget = mw.findChild(QtGui.QToolBar, "draft_scale_widget") + scale_widget = mw.findChild(QtWidgets.QToolBar, "draft_scale_widget") if scale_widget: scale_widget.hide() # prevent the widget from showing up as a blank item in the toolbar @@ -334,11 +335,11 @@ def hide_draft_statusbar(): scale_widget.toggleViewAction().setVisible(False) # hide snap widget - snap_widget = sb.findChild(QtGui.QToolBar,"draft_snap_widget") + snap_widget = sb.findChild(QtWidgets.QToolBar,"draft_snap_widget") if snap_widget is None: # when switching workbenches, the toolbar sometimes "jumps" # out of the status bar to any other dock area... - snap_widget = mw.findChild(QtGui.QToolBar,"draft_snap_widget") + snap_widget = mw.findChild(QtWidgets.QToolBar,"draft_snap_widget") if snap_widget: snap_widget.hide() # prevent the widget from showing up as a blank item in the toolbar diff --git a/src/Mod/Draft/draftutils/params.py b/src/Mod/Draft/draftutils/params.py index 09c47218a6..883a1bca7d 100644 --- a/src/Mod/Draft/draftutils/params.py +++ b/src/Mod/Draft/draftutils/params.py @@ -35,7 +35,7 @@ from draftutils.translate import translate if App.GuiUp: import FreeCADGui as Gui - from PySide import QtGui + from PySide import QtWidgets class ParamObserverDraft: @@ -93,7 +93,7 @@ def _param_observer_callback_scalemultiplier(value): return mw = Gui.getMainWindow() sb = mw.statusBar() - scale_widget = sb.findChild(QtGui.QToolBar,"draft_scale_widget") + scale_widget = sb.findChild(QtWidgets.QToolBar,"draft_scale_widget") if scale_widget is not None: scale_label = init_draft_statusbar.scale_to_label(1 / value) scale_widget.scaleLabel.setText(scale_label) @@ -179,10 +179,10 @@ def _param_observer_callback_svg_pattern(): msg = translate("draft", """Do you want to update the SVG pattern options of existing objects in all opened documents?""") - res = QtGui.QMessageBox.question(None, "Update SVG patterns", msg, - QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, - QtGui.QMessageBox.No) - if res == QtGui.QMessageBox.No: + res = QtWidgets.QMessageBox.question(None, "Update SVG patterns", msg, + QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No, + QtWidgets.QMessageBox.No) + if res == QtWidgets.QMessageBox.No: return for doc, vobjs in data: diff --git a/src/Mod/Draft/draftutils/translate.py b/src/Mod/Draft/draftutils/translate.py index 3c8ddd6ccc..7007a45e8e 100644 --- a/src/Mod/Draft/draftutils/translate.py +++ b/src/Mod/Draft/draftutils/translate.py @@ -33,12 +33,12 @@ using the QtCore module. ## \addtogroup draftutils # @{ import PySide.QtCore as QtCore -import PySide.QtGui as QtGui +import PySide.QtWidgets as QtWidgets Qtranslate = QtCore.QCoreApplication.translate try: - _encoding = QtGui.QApplication.UnicodeUTF8 + _encoding = QtWidgets.QApplication.UnicodeUTF8 except AttributeError: _encoding = None @@ -46,7 +46,7 @@ except AttributeError: def translate(context, text, comment=None): r"""Translate the text using the Qt translate function. - It wraps around `QtGui.QApplication.translate`, + It wraps around `QtWidgets.QApplication.translate`, which is the same as `QtCore.QCoreApplication.translate`. Parameters @@ -68,7 +68,7 @@ def translate(context, text, comment=None): Returns ------- str - A unicode string returned by `QtGui.QApplication.translate`. + A unicode string returned by `QtWidgets.QApplication.translate`. Unicode strings --------------- @@ -77,7 +77,7 @@ def translate(context, text, comment=None): In Qt5 the strings are always assumed unicode >>> QtCore.QCoreApplication.translate(context, text, None) - >>> QtGui.QApplication.translate(context, text, None) + >>> QtWidgets.QApplication.translate(context, text, None) """ return Qtranslate(context, text, comment) @@ -90,7 +90,7 @@ def translate(context, text, comment=None): # # ============================================================================= # try: -# _encoding = QtGui.QApplication.UnicodeUTF8 if six.PY2 else None +# _encoding = QtWidgets.QApplication.UnicodeUTF8 if six.PY2 else None # def translate(context, text, utf8_decode=True): # """convenience function for Qt translator # context: str diff --git a/src/Mod/Draft/importDXF.py b/src/Mod/Draft/importDXF.py index 476c97a267..9fbd34cb49 100644 --- a/src/Mod/Draft/importDXF.py +++ b/src/Mod/Draft/importDXF.py @@ -76,7 +76,7 @@ if gui: except (AttributeError, NameError): draftui = None from draftutils.translate import translate - from PySide import QtGui + from PySide import QtWidgets else: def translate(context, txt): return txt @@ -127,7 +127,7 @@ def errorDXFLib(gui): message = translate("Draft", """Download of dxf libraries failed. Please install the dxf Library addon manually from menu Tools -> Addon Manager""") - QtGui.QMessageBox.information(None, "", message) + QtWidgets.QMessageBox.information(None, "", message) else: FCC.PrintWarning("The DXF import/export libraries needed by FreeCAD to handle the DXF format are not installed.\n") FCC.PrintWarning("Please install the dxf Library addon from Tools -> Addon Manager\n") @@ -144,13 +144,13 @@ Please either enable FreeCAD to download these libraries: Or download these libraries manually, as explained on https://github.com/yorikvanhavre/Draft-dxf-importer To enabled FreeCAD to download these libraries, answer Yes.""") - reply = QtGui.QMessageBox.question(None, "", message, - QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, - QtGui.QMessageBox.No) - if reply == QtGui.QMessageBox.Yes: + reply = QtWidgets.QMessageBox.question(None, "", message, + QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No, + QtWidgets.QMessageBox.No) + if reply == QtWidgets.QMessageBox.Yes: params.set_param("dxfAllowDownload", True) errorDXFLib(gui) - if reply == QtGui.QMessageBox.No: + if reply == QtWidgets.QMessageBox.No: pass else: FCC.PrintWarning("The DXF import/export libraries needed by FreeCAD to handle the DXF format are not installed.\n") @@ -2369,18 +2369,18 @@ def processdxf(document, filename, getShapes=False, reComputeFlag=True): if len(edges) > (100): FCC.PrintMessage(str(len(edges)) + " edges to join\n") if gui: - d = QtGui.QMessageBox() + d = QtWidgets.QMessageBox() d.setText("Warning: High number of entities to join (>100)") d.setInformativeText("This might take a long time " "or even freeze your computer. " "Are you sure? You can also disable " "the 'join geometry' setting in DXF " "import preferences") - d.setStandardButtons(QtGui.QMessageBox.Ok - | QtGui.QMessageBox.Cancel) - d.setDefaultButton(QtGui.QMessageBox.Cancel) + d.setStandardButtons(QtWidgets.QMessageBox.Ok + | QtWidgets.QMessageBox.Cancel) + d.setDefaultButton(QtWidgets.QMessageBox.Cancel) res = d.exec_() - if res == QtGui.QMessageBox.Cancel: + if res == QtWidgets.QMessageBox.Cancel: FCC.PrintMessage("Aborted\n") return shapes = DraftGeomUtils.findWires(edges) diff --git a/src/Mod/Draft/importSVG.py b/src/Mod/Draft/importSVG.py index 44c7ffbd12..98e9650ee8 100644 --- a/src/Mod/Draft/importSVG.py +++ b/src/Mod/Draft/importSVG.py @@ -63,7 +63,7 @@ from draftutils.translate import translate from draftutils.messages import _err, _msg, _wrn if FreeCAD.GuiUp: - from PySide import QtGui + from PySide import QtWidgets import FreeCADGui gui = True try: @@ -752,14 +752,14 @@ class svgHandler(xml.sax.ContentHandler): _qst = ("Do you wish to use 96 dpi? Choosing 'No' " "will use the older standard 90 dpi.") if FreeCAD.GuiUp: - msgBox = QtGui.QMessageBox() + msgBox = QtWidgets.QMessageBox() msgBox.setText(translate("ImportSVG", _inf)) msgBox.setInformativeText(translate("ImportSVG", _qst)) - msgBox.setStandardButtons(QtGui.QMessageBox.Yes - | QtGui.QMessageBox.No) - msgBox.setDefaultButton(QtGui.QMessageBox.No) + msgBox.setStandardButtons(QtWidgets.QMessageBox.Yes + | QtWidgets.QMessageBox.No) + msgBox.setDefaultButton(QtWidgets.QMessageBox.No) ret = msgBox.exec_() - if ret == QtGui.QMessageBox.Yes: + if ret == QtWidgets.QMessageBox.Yes: self.svgdpi = 96.0 else: self.svgdpi = 90.0