# -*- coding: utf-8 -*-
|
|
#
|
|
# Copyright © 2014-2015 Colin Duquesnoy
|
|
# Copyright © 2009- The Spyder Development Team
|
|
#
|
|
# Licensed under the terms of the MIT License
|
|
# (see LICENSE.txt for details)
|
|
|
|
"""
|
|
Provides QtGui classes and functions.
|
|
.. warning:: Only PyQt4/PySide QtGui classes compatible with PyQt5.QtGui are
|
|
exposed here. Therefore, you need to treat/use this package as if it were
|
|
the ``PyQt5.QtGui`` module.
|
|
"""
|
|
import warnings
|
|
|
|
from . import PYQT5, PYQT4, PYSIDE, PYSIDE2, PythonQtError
|
|
|
|
|
|
if PYQT5:
|
|
from PyQt5.QtGui import *
|
|
elif PYSIDE2:
|
|
from PySide2.QtGui import *
|
|
elif PYQT4:
|
|
try:
|
|
# Older versions of PyQt4 do not provide these
|
|
from PyQt4.QtGui import (QGlyphRun, QMatrix2x2, QMatrix2x3,
|
|
QMatrix2x4, QMatrix3x2, QMatrix3x3,
|
|
QMatrix3x4, QMatrix4x2, QMatrix4x3,
|
|
QMatrix4x4, QTouchEvent, QQuaternion,
|
|
QRadialGradient, QRawFont, QStaticText,
|
|
QVector2D, QVector3D, QVector4D,
|
|
qFuzzyCompare)
|
|
except ImportError:
|
|
pass
|
|
from PyQt4.Qt import QKeySequence, QTextCursor
|
|
from PyQt4.QtGui import (QAbstractTextDocumentLayout, QActionEvent, QBitmap,
|
|
QBrush, QClipboard, QCloseEvent, QColor,
|
|
QConicalGradient, QContextMenuEvent, QCursor,
|
|
QDoubleValidator, QDrag,
|
|
QDragEnterEvent, QDragLeaveEvent, QDragMoveEvent,
|
|
QDropEvent, QFileOpenEvent, QFocusEvent, QFont,
|
|
QFontDatabase, QFontInfo, QFontMetrics,
|
|
QFontMetricsF, QGradient, QHelpEvent,
|
|
QHideEvent, QHoverEvent, QIcon, QIconDragEvent,
|
|
QIconEngine, QImage, QImageIOHandler, QImageReader,
|
|
QImageWriter, QInputEvent, QInputMethodEvent,
|
|
QKeyEvent, QLinearGradient,
|
|
QMouseEvent, QMoveEvent, QMovie,
|
|
QPaintDevice, QPaintEngine, QPaintEngineState,
|
|
QPaintEvent, QPainter, QPainterPath,
|
|
QPainterPathStroker, QPalette, QPen, QPicture,
|
|
QPictureIO, QPixmap, QPixmapCache, QPolygon,
|
|
QPolygonF, QRegExpValidator, QRegion, QResizeEvent,
|
|
QSessionManager, QShortcutEvent, QShowEvent,
|
|
QStandardItem, QStandardItemModel,
|
|
QStatusTipEvent, QSyntaxHighlighter, QTabletEvent,
|
|
QTextBlock, QTextBlockFormat, QTextBlockGroup,
|
|
QTextBlockUserData, QTextCharFormat,
|
|
QTextDocument, QTextDocumentFragment,
|
|
QTextDocumentWriter, QTextFormat, QTextFragment,
|
|
QTextFrame, QTextFrameFormat, QTextImageFormat,
|
|
QTextInlineObject, QTextItem, QTextLayout,
|
|
QTextLength, QTextLine, QTextList, QTextListFormat,
|
|
QTextObject, QTextObjectInterface, QTextOption,
|
|
QTextTable, QTextTableCell, QTextTableCellFormat,
|
|
QTextTableFormat, QTransform,
|
|
QValidator, QWhatsThisClickedEvent, QWheelEvent,
|
|
QWindowStateChangeEvent, qAlpha, qBlue,
|
|
qGray, qGreen, qIsGray, qRed, qRgb,
|
|
qRgba, QIntValidator)
|
|
|
|
# QDesktopServices has has been split into (QDesktopServices and
|
|
# QStandardPaths) in Qt5
|
|
# It only exposes QDesktopServices that are still in pyqt5
|
|
from PyQt4.QtGui import QDesktopServices as _QDesktopServices
|
|
|
|
class QDesktopServices():
|
|
openUrl = _QDesktopServices.openUrl
|
|
setUrlHandler = _QDesktopServices.setUrlHandler
|
|
unsetUrlHandler = _QDesktopServices.unsetUrlHandler
|
|
|
|
def __getattr__(self, name):
|
|
attr = getattr(_QDesktopServices, name)
|
|
|
|
new_name = name
|
|
if name == 'storageLocation':
|
|
new_name = 'writableLocation'
|
|
warnings.warn(("Warning QDesktopServices.{} is deprecated in Qt5"
|
|
"we recommend you use QDesktopServices.{} instead").format(name, new_name),
|
|
DeprecationWarning)
|
|
return attr
|
|
QDesktopServices = QDesktopServices()
|
|
|
|
elif PYSIDE:
|
|
from PySide.QtGui import (QAbstractTextDocumentLayout, QActionEvent, QBitmap,
|
|
QBrush, QClipboard, QCloseEvent, QColor,
|
|
QConicalGradient, QContextMenuEvent, QCursor,
|
|
QDoubleValidator, QDrag,
|
|
QDragEnterEvent, QDragLeaveEvent, QDragMoveEvent,
|
|
QDropEvent, QFileOpenEvent, QFocusEvent, QFont,
|
|
QFontDatabase, QFontInfo, QFontMetrics,
|
|
QFontMetricsF, QGradient, QHelpEvent,
|
|
QHideEvent, QHoverEvent, QIcon, QIconDragEvent,
|
|
QIconEngine, QImage, QImageIOHandler, QImageReader,
|
|
QImageWriter, QInputEvent, QInputMethodEvent,
|
|
QKeyEvent, QKeySequence, QLinearGradient,
|
|
QMatrix2x2, QMatrix2x3, QMatrix2x4, QMatrix3x2,
|
|
QMatrix3x3, QMatrix3x4, QMatrix4x2, QMatrix4x3,
|
|
QMatrix4x4, QMouseEvent, QMoveEvent, QMovie,
|
|
QPaintDevice, QPaintEngine, QPaintEngineState,
|
|
QPaintEvent, QPainter, QPainterPath,
|
|
QPainterPathStroker, QPalette, QPen, QPicture,
|
|
QPictureIO, QPixmap, QPixmapCache, QPolygon,
|
|
QPolygonF, QQuaternion, QRadialGradient,
|
|
QRegExpValidator, QRegion, QResizeEvent,
|
|
QSessionManager, QShortcutEvent, QShowEvent,
|
|
QStandardItem, QStandardItemModel,
|
|
QStatusTipEvent, QSyntaxHighlighter, QTabletEvent,
|
|
QTextBlock, QTextBlockFormat, QTextBlockGroup,
|
|
QTextBlockUserData, QTextCharFormat, QTextCursor,
|
|
QTextDocument, QTextDocumentFragment,
|
|
QTextFormat, QTextFragment,
|
|
QTextFrame, QTextFrameFormat, QTextImageFormat,
|
|
QTextInlineObject, QTextItem, QTextLayout,
|
|
QTextLength, QTextLine, QTextList, QTextListFormat,
|
|
QTextObject, QTextObjectInterface, QTextOption,
|
|
QTextTable, QTextTableCell, QTextTableCellFormat,
|
|
QTextTableFormat, QTouchEvent, QTransform,
|
|
QValidator, QVector2D, QVector3D, QVector4D,
|
|
QWhatsThisClickedEvent, QWheelEvent,
|
|
QWindowStateChangeEvent, qAlpha, qBlue,
|
|
qGray, qGreen, qIsGray, qRed, qRgb, qRgba,
|
|
QIntValidator)
|
|
# QDesktopServices has has been split into (QDesktopServices and
|
|
# QStandardPaths) in Qt5
|
|
# It only exposes QDesktopServices that are still in pyqt5
|
|
from PySide.QtGui import QDesktopServices as _QDesktopServices
|
|
|
|
class QDesktopServices():
|
|
openUrl = _QDesktopServices.openUrl
|
|
setUrlHandler = _QDesktopServices.setUrlHandler
|
|
unsetUrlHandler = _QDesktopServices.unsetUrlHandler
|
|
|
|
def __getattr__(self, name):
|
|
attr = getattr(_QDesktopServices, name)
|
|
|
|
new_name = name
|
|
if name == 'storageLocation':
|
|
new_name = 'writableLocation'
|
|
warnings.warn(("Warning QDesktopServices.{} is deprecated in Qt5"
|
|
"we recommend you use QDesktopServices.{} instead").format(name, new_name),
|
|
DeprecationWarning)
|
|
return attr
|
|
QDesktopServices = QDesktopServices()
|
|
else:
|
|
raise PythonQtError('No Qt bindings could be found')
|