Utils¶
Table of Contents
Errors¶
Keyboardmouse¶
- ctrlShiftMultiplier(shiftMultiply=5.0, ctrlMultiply=0.2, altMultiply=1.0)¶
For offset functions multiply (shift) and minimise if (ctrl) is held down If (alt) then call the reset option
- Return multiplier
multiply value, 0.2 if ctrl 5.0 if shift 1.0 if None
- Rtype multiplier
float
- Return reset
Reset becomes True while resetting for alt
- Rtype reset
bool
- eventKeySequence(event, ignoreModifiersForSpecialCharacters=True)¶
Returns the QKeySequence from the KeyEvent
- Parameters
event (
QtGui.QKeyEvent
) –ignoreModifiersForSpecialCharacters (bool) – If True then special characters like ! which map to another key i.e. ! maps to shift+1 then only return the sequence “!” not shift+1
- Returns
- Return type
QtGui.QKeySequence
Qtmath¶
- normalized(pt)¶
- magnitude(pt)¶
- distance(pt1, pt2)¶
Stylesheet¶
- class StyleSheet(styleSheet=None)¶
Bases:
object
styleSheetStr = "QToolTip{background - color: rgb(BACK_COLOR_R, BACK_COLOR_G, BACK_COLOR_B);" "color: black;border: blacksolid 1px;margins: 2px;}" settings = {"BACK_COLOR_R": 251, "BACK_COLOR_G": 15, "BACK_COLOR_B": 10} sheet = StyleSheet(styleSheetStr) sheet.format(settings) print(sheet.data) # result # QToolTip { # background-color: rgb(251, 15, 10); # color: black; # border: black solid 1px; # margins: 2px; # }
- classmethod fromPath(path, **kwargs)¶
- Parameters
- Return type
- valueType(value)¶
Returns type of value for the stylesheet.pref key value
- Parameters
value –
- Returns
- stylesheetFromDirectory(directory, name)¶
Recursively searches directory until the name.css file is found and a
Stylesheet
instance is returned- Parameters
- Returns
The style sheet instance or None if no matching file is found
- Return type
tuple(
StyleSheet
, str)
- stylesheetsFromDirectory(directory)¶
Recursively searches the directory for all .css files and returns
StyleSheet
instances and file paths- Parameters
directory (str) – The absolute path to the directory to search
- Returns
- Return type
list(tuple(
StyleSheet
, str))
- loadFonts(fontPaths)¶
Loads the given ‘.ttf’ font files into the QtGui.QFontDatabase
- unloadFonts()¶
Unload all loaded zoo fonts
- Returns
- loadDefaultFonts()¶
Loads the zoo core default fonts paths.
- Note
this only needs to be run once per QApplication
Thread¶
- class WorkerSignals(*args: Any, **kwargs: Any)¶
Bases:
QObject
Defines the signals available from a running worker thread.
Supported signals are:
- finished
No data
- error
tuple (exctype, value, traceback.format_exc() )
- result
object data returned from processing, anything
- progress
int indicating % progress
- error¶
alias of
tuple
- class ThreadedFunc(*args: Any, **kwargs: Any)¶
Bases:
QRunnable
Worker thread
Inherits from QRunnable to handler worker thread setup, signals and wrap-up.
- Parameters
callback (function) – The function callback to run on this worker thread. Supplied args and kwargs will be passed through to the runner.
args – Arguments to pass to the callback function
kwargs – Keywords to pass to the callback function
- run()¶
Initialise the runner function with passed args, kwargs.
Uiconstants¶
Utils¶
- loggingMenu(name=None)¶
- iterParents(widget)¶
Get all the parents of the widget
- Parameters
widget (Qt.QtWidgets.QWidget.QWidget) – Widget to get the parents of
- Returns
- Return type
list[Qt.QtWidgets.QWidget.QWidget]
- iterChildren(widget, skip=None)¶
Yields all descendant widgets depth-first
- Parameters
widget (QtWidgets.QWidget) – Widget to iterate through
skip (basestring) – If the widget has this property, it will skip it’s children
- Returns
- hasAncestorType(widget, ancestorType, maxIter=20)¶
Boolean version of ancestor
- Parameters
widget (QtWidgets.QWidget) – The target widget to check
ancestorType (class) – The type of widget to search for eg. toolsetui.ToolsetsUi
maxIter (int) – Max number of iterations to check through the parent and their parents
- Returns
- Return type
- invalidateWindow(w)¶
Invalidate window to force the window to update the sizes. Assumes window to be hidden
- Parameters
w –
- Returns
- widgetVisible(widget)¶
Checks if the widget is actually visible. widget.isVisible() only checks if the visible flag is off or on. Even if the parent is invisible and widget is visible, this should still work correctly.
- Parameters
widget – QtWidgets.QWidget
- Returns
- updateWidgetSizes(w)¶
Update the widget sizes, especially useful for resizing and showing
- Parameters
w –
- Returns
- ancestor(widget, ancestorType, maxIter=20)¶
Checks if widget has an ancestor of a certain type
Example:
class Ancestor(QtWidgets.QWidget): pass ancestor = Ancestor() x = QtWidgets.QWidget(ancestor) hasAncestorType(x, Ancestor) # True
- Parameters
widget (QtWidgets.QWidget) – The target widget to check
ancestorType (class) – The type of widget to search for eg. toolsetui.ToolsetsUi
maxIter (int) – Max number of iterations to check through the parent and their parents
- Returns
- Return type
- absQPoint(p)¶
Get the abs() for qpoint
- Parameters
p (QtCore.QPoint) –
- Returns
- Return type
QtCore.QPoint
- safeTreeWidgetIterator(item, flags=MockExt.QtWidgets.QTreeWidgetItemIterator.All)¶
A PyQt and PySide compatible QTreeWidgetItemIterator which handles incrementing the iterator on each loop to avoid the infinite loop.
- Parameters
item (
QtWidgets.QTreeWidget
orQtWidgets.QTreeWidgetItemIterator
) –flags (int) – Qt QTreeWidgetItemIterator flags
- Returns
Generator which returns each item in the tree
- Return type
list[
QtWidgets.QtTreeWidgetItem
]
- getWidgetTree(widget, maxIter=20)¶
Get the widget’s tree from its ancestors
- Parameters
widget –
- Returns
- isNameInChildren(widgetName, parentWidget)¶
- hsvColor(hue, sat=1.0, val=1.0, alpha=1.0)¶
Create a QColor from the hsvaValues
Note
All the values must be in the range 0.0-1.0.
- colorStr(c)¶
Generate a hex string code from a QColor
- hBoxLayout(parent=None, margins=(2, 2, 2, 2), spacing=2)¶
- hframeLayout(parent=None)¶
- vframeLayout(parent=None)¶
- vBoxLayout(parent=None, margins=(2, 2, 2, 2), spacing=2)¶
- hlineEdit(labelName, parent, enabled=True)¶
- vlineEdit(labelName, parent, enabled=True)¶
- recursivelySetActionVisiblity(menu, state)¶
Will recursively set the visible state of the QMenu actions
- Parameters
menu (QMenu) – The QMenu to search
- desktopPixmapFromRect(rect)¶
Generates a pixmap on the specified QRectangle.
- Parameters
rect (
QRect
) – Rectangle to Snap- Returns
Captured pixmap
- Return type
QPixmap
- windowOffset(window)¶
Gets the window offset often not seen in frameless windows.
- Parameters
window (
QtWidgets.QMainWindow
) – the Window widget- Returns
The offset
- Return type
QtCore.QPoint
- widgetCenter(widget)¶
Widget Center
- Parameters
widget (QtWidgets.QWidget) – Widget to the center of
- Return type
QtCore.QPoint
- Returns
Center point of widget
- updateStyle(widget)¶
Updates a widget after a style object name change. eg. widget.setObjectName()
- Parameters
widget –
- Returns
- squaredLength(pt)¶
Squared length of a point. Higher performance than length, at the cost of accuracy.
- Parameters
pt (Qt.QtCore.QPoint) –
- Returns
- Return type
- setStylesheetObjectName(widget, name, update=True)¶
Sets the widget to have the object name as set in the stylesheet
#redselection { background-color: red; }
btn = QtWidgets.QPushButton("Hello World") utils.setStylesheetObjectName(btn, "redselection")
- Parameters
widget – Widget to apply object name to
name – The object name in stylesheet without the ‘#’
- Returns
- widgetsAt(pos)¶
Get widgets underneath
- Parameters
pos (QtCore.QPoint) –
- Returns
Returns list of all widgets underneath pos
- Return type
List[Tuple[QWidget], QPoint]]
- widgetsUnderCursor()¶
Gets the widgets underneath the cursor
- Returns
- Return type
List[Tuple[QWidget, QPoint]]
- clickUnder(pos, under=1, button=MockExt.QtCore.Qt.LeftButton, modifier=MockExt.QtCore.Qt.KeyboardModifier.NoModifier)¶
Clicks under the widget
- Parameters
pos (QtCore.QPoint) –
under (int) – Number of iterations under
- Returns
- widgetAttributesString(widget, trueOnly=True)¶
- Parameters
widget (QtWidgets.QWidget) –
- Returns
- Return type
- windowFlagsString(windowFlags)¶
Returns a nice string that describes what’s inside a windowFlags object
print(windowFlagsString(self.windowFlags()))
Prints out:
QtCore.Qt.Dialog | QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowCloseButtonHint | QtCore.Qt.WindowContextHelpButtonHint
- Parameters
windowFlags –
- Returns
- keyboardModifiers()¶
Keyboard modifiers
- Returns
- Return type
Qt.QtCore.Qt.KeyboardModifier
- flagTypes(flag)¶
Extracts the flag states as strings eg:
flagTypes(QtWidgets.QStyle.StateFlag)
[QtWidgets.QStyle.StateFlag.State_HasFocus, QtWidgets.QStyle.StateFlag.State_AutoRaise, QtWidgets.QStyle.StateFlag.State_Bottom, QtWidgets.QStyle.StateFlag.State_Children, etc]
- Parameters
flag –
- Returns
- flagString(value, flag, fullPath=False)¶
Returns a string with all the flags associated with the value, based on flag
eg. flags = flagString(option.state, QtWidgets.QStyle.StateFlag) # flags: [“QtWidgets.QStyle.StateFlag.State_On”, “QtWidgets.QStyle.StateFlag.State_HasFocus”
If fullPath is false, it will just return the last part of the flag name:
# flags: [“State_On”, “State_HasFocus”]
- Parameters
value –
flag –
fullPath – Return the last state instead eg [“State_On”, State_HasFocus]
- Returns
- alignmentString(alignmentFlags)¶
Returns a nice string that describes what’s inside a alignment object
- Parameters
alignmentFlags – Alignment flags
- Returns
- dpiMult()¶
- dpiScale(value)¶
Resize by value based on current DPI
- Parameters
value (int) – the default 2k size in pixels
- Return value
the size in pixels now dpi monitor ready (4k 2k etc)
- Rtype value
int
- dpiScaleDivide(value)¶
Inverse resize by value based on current DPI, for values that may get resized twice
- Parameters
value (int) – the size in pixels
- Return value
the divided size in pixels
- Rtype value
int
- pixmapFromIcon(image)¶
Returns the first available size for a QImage
- Parameters
image (QtGui.QIcon) –
- Returns
- marginsDpiScale(left, top, right, bottom)¶
Convenience function to return contents margins
- Parameters
left –
top –
right –
bottom –
- Returns
- pointByDpi(point)¶
Scales the QPoint by the current dpi scaling from maya.
- Parameters
point (QtCore.QPoint) – The QPoint to Scale by the current dpi settings
- Returns
The newly scaled QPoint
- Return type
QtCore.QPoint
- sizeByDpi(size)¶
Scales the QSize by the current dpi scaling from maya.
- Parameters
size (QSize) – The QSize to Scale by the current dpi settings
- Returns
The newly scaled QSize
- Return type
QSize
- clearLayout(layout)¶
Clear the elements of a layout
- Parameters
layout (
QtWidgets.QLayout
) – The QT Layout instance.
- layoutItems(layout)¶
Retrieves the items from the layout and returns it as a list
- Parameters
layout – The layout to retrieve the items from
- Returns
List of items from layout
- Return type
list of QtWidgets.QLayoutItem
- layoutItem(widget)¶
Get the widgets layout item
- Parameters
widget (
QWidget
) – The Widget instance.- Returns
- Return type
QtWidgets.QWidget
- layoutIndex(widget)¶
Get the layout index of the widget in its layout
- Parameters
widget –
- Returns
- Return type
- layoutWidgets(layout)¶
Retrieves the widgets from the layout and returns it as a list
- Parameters
layout – The layout to retrieve the widgets from
- Returns
List of widgets from layout
- Return type
list
- screensContainPoint(point)¶
Checks if point is within the screens
- Parameters
point –
- Returns
- currentScreenGeometry()¶
Gets the current screen geometry.
- Return type
QtCore.QRect
- currentScreen()¶
Gets current screen.
- Return type
QRect
- containWidgetInScreen(widget, pos=None)¶
Forces the provided widget to be within the screen and returns the resulting position
- Parameters
widget (QtWidgets.QWidget) – The Widget to change.
- Return type
QtCore.QPoint
- resetFixedHeight(widget, policy=MockExt.QtWidgets.QSizePolicy.Preferred)¶
Reset the fixed width
:param widget:The widget to affect :type widget: QtWidgets.QWidget :param policy: Policy to change back to (from Fixed) :type policy: QtWidgets.QSizePolicy
- resetFixedWidth(widget, policy=MockExt.QtWidgets.QSizePolicy.Preferred)¶
Reset the fixed width
- Parameters
widget (QtWidgets.QWidget) – The widget to affect
policy (QtWidgets.QSizePolicy) – Policy to change back to (from Fixed)
- resetFixedSize(widget, policy=MockExt.QtWidgets.QSizePolicy)¶
Reset the fixed size
- Parameters
widget (QtWidgets.QWidget) – The widget to affect
policy (QtWidgets.QSizePolicy) – Policy to change back to (from Fixed)
- singleShotTimer(func, time=0)¶
Shorthand for QtCore.QTimer.singleShot()
- Parameters
time (int) – Time in milliseconds to run the function
func (callable) – Function to pass through to the single shot timer
- setCursor(cursor)¶
Set cursor
- Parameters
cursor – Cursor
- Type
QtCore.Qt.CursorShape
- Returns
- restoreCursor()¶
Resets the cursor back to default
- Returns
- setVSizePolicy(widget, p)¶
Less painful way of setting the size policies of widgets
- Parameters
p (QtWidgets.QSizePolicy) – The new size policy to put into the vertical policy
- Returns
- Return type
- setHSizePolicy(widget, p)¶
Less painful way of setting the size policies of widgets
- Parameters
p (QtWidgets.QSizePolicy) – The new size policy to put into the horizontal policy
- Returns
- Return type
- setSizeHint(widget, size)¶
Possibly hacky approach to set the size hint. Monkey-patch
- Parameters
widget (QtWidgets.QWidget) –
size (QtCore.QSize) –
- Returns
- Return type
- mainWindow()¶
Returns the main window depending on program
- Returns
- Return type
QtWidgets.QWidget
- processUIEvents()¶
Shorthand for QtWidgets.QApplication.processEvents()
- forceWindowUpdate(w)¶
Forces a window update. Fairly hacky so use when everything else fails
- Parameters
w (QtWidgets.QMainWindow) – The window to force
- firstVisibleChild(w)¶
Get first visible child
- Parameters
w (QtWidgets.QWidget) – Widget
- Returns
- Return type
QtWidgets.QWidget
- clearFocusWidgets()¶
Clear focus if it has the “clearFocus” property set by the developer
- setForcedClearFocus(w, active=True)¶
Set widget to have forced clearFocus. Some widgets need this
- Parameters
active –
w (QtWidgets.QWidget) –
- qTreeViewRemoveDottedLines(tree)¶
Removes the dotted lines on selection for tree widget
https://stackoverflow.com/questions/15830383/get-rid-of-qts-dotted-outline-on-qlistview-items
- Parameters
tree (QtWidgets.QTreeWidget) –
- setShadowEffectEnabled(widget, enabled)¶
Set shadow effect for a widget
- Parameters
widget (QtWidgets.QWidget) –
enabled –
- blockSignalsContext(qtObjects)¶
Context Manager(with) statement which temporarily disables signals for the provided QObjects.
- Parameters
qtObjects (
QtCore.QObject
) – Iterable of QObjects which will have their signals temporarily blocked.
wid = QtWidgets.QtWidget() with blockSignalsContext((wid,)): # do something