105 lines
2.5 KiB
Python
105 lines
2.5 KiB
Python
# piker: trading gear for hackers
|
|
# Copyright (C) Tyler Goodlet (in stewardship for pikers)
|
|
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU Affero General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU Affero General Public License for more details.
|
|
|
|
# You should have received a copy of the GNU Affero General Public License
|
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
'''
|
|
Qt UI framework version shimming.
|
|
|
|
Allow importing sub-pkgs from this module instead of worrying about
|
|
major version specifics, any enum moves or component renames.
|
|
|
|
Code in `piker.ui.*` should always explicitlyimport directly from
|
|
this module like `from piker.ui.qt import ( ..`
|
|
|
|
'''
|
|
from enum import EnumType
|
|
|
|
from PyQt6 import (
|
|
QtCore,
|
|
QtGui,
|
|
QtWidgets,
|
|
)
|
|
from PyQt6.QtCore import (
|
|
Qt,
|
|
QCoreApplication,
|
|
QLineF,
|
|
QRectF,
|
|
# NOTE: for enums use the `.Type` subattr-space
|
|
QEvent,
|
|
QPointF,
|
|
QSize,
|
|
QModelIndex,
|
|
QItemSelectionModel,
|
|
pyqtBoundSignal,
|
|
pyqtRemoveInputHook,
|
|
)
|
|
|
|
align_flag: EnumType = Qt.AlignmentFlag
|
|
txt_flag: EnumType = Qt.TextFlag
|
|
keys: EnumType = QEvent.Type
|
|
scrollbar_policy: EnumType = Qt.ScrollBarPolicy
|
|
|
|
# ^-NOTE-^: handy snippet to discover enums:
|
|
# import enum
|
|
# [attr for attr_name in dir(QFrame)
|
|
# if (attr := getattr(QFrame, attr_name))
|
|
# and isinstance(attr, enum.EnumType)]
|
|
|
|
from PyQt6.QtGui import (
|
|
QPainter,
|
|
QPainterPath,
|
|
QIcon,
|
|
QPixmap,
|
|
QColor,
|
|
QTransform,
|
|
QStandardItem,
|
|
QStandardItemModel,
|
|
QWheelEvent,
|
|
QScreen,
|
|
QCloseEvent,
|
|
)
|
|
|
|
from PyQt6.QtWidgets import (
|
|
QMainWindow,
|
|
QApplication,
|
|
QLabel,
|
|
QStatusBar,
|
|
QLineEdit,
|
|
QHBoxLayout,
|
|
QVBoxLayout,
|
|
QFormLayout,
|
|
QProgressBar,
|
|
QSizePolicy,
|
|
QStyledItemDelegate,
|
|
QStyleOptionViewItem,
|
|
QComboBox,
|
|
QWidget,
|
|
QFrame,
|
|
QSplitter,
|
|
QTreeView,
|
|
QStyle,
|
|
QGraphicsItem,
|
|
QGraphicsPathItem,
|
|
# QGraphicsView,
|
|
QStyleOptionGraphicsItem,
|
|
QGraphicsScene,
|
|
QGraphicsSceneMouseEvent,
|
|
QGraphicsProxyWidget,
|
|
)
|
|
|
|
gs_keys: EnumType = QGraphicsSceneMouseEvent.Type
|
|
size_policy: EnumType = QtWidgets.QSizePolicy.Policy
|
|
px_cache_mode: EnumType = QGraphicsItem.CacheMode
|