Skip to content

Instantly share code, notes, and snippets.

"""
An experiment to fix PyQt QObject.tr context override
https://www.riverbankcomputing.com/static/Docs/PyQt5/i18n.html#differences-between-pyqt5-and-qt
.. note::
Known deficiencies:
* No support for @property, @pyQtSlot, etc. decorators
from functools import singledispatch
def singledispatch_next(f):
"""
Decorate a `singledispatch` function f with a `next` method.
`f.next(__class__)` dispatches to the 'base' or next implementation in
the __class__'s mro chain.
"""
Read the IDX file format as described by http://yann.lecun.com/exdb/mnist/
"""
import os
import io
import struct
import mmap
from functools import reduce
from typing import IO, Tuple, Union
@ales-erjavec
ales-erjavec / qvariant_cast.py
Last active March 10, 2021 13:52
qvariant_cast "like" in PyQt5/PySide2
from typing import overload, Union, Type, TypeVar, Any
from functools import lru_cache
from PyQt5.QtCore import QObject, pyqtProperty as Property
@lru_cache(maxsize=200)
def _converter(type_: Union[type, str]):
class Obj(QObject):
__slots__ = ("field",)
from PyQt5.QtCore import QObject, pyqtProperty
class Q_Property(pyqtProperty):
"""
A descriptor that more closely resembles the Q_PROPERTY macro.
Encourage a coding style which is consistent with Qt.
Example:
"""
DataType
--------
A NamedTuple like class except it also defines strict type dependent
__eq__, __ne__ and __hash__. This ensures that instances can be compared,
hashed in dict, sets, ... I.e.
Example
-------
from typing import Iterable
from PyQt5.QtWidgets import QListView, QLineEdit
from PyQt5.QtGui import QResizeEvent
from PyQt5.QtCore import (
Qt, QAbstractItemModel, QModelIndex, QSortFilterProxyModel, QItemSelection
)
class FilterListView(QListView):
import time
from types import SimpleNamespace
from threading import Event
from concurrent.futures.thread import ThreadPoolExecutor
from PyQt5.QtCore import (
Qt, QObject, QCoreApplication, QTimer, QEventLoop, pyqtSignal
)
@ales-erjavec
ales-erjavec / graphicsstatictextitem.py
Created February 12, 2019 22:39
A QGraphicsItem displaying a QStaticText item
from typing import Optional
from PyQt5.QtCore import Qt, QPointF, QRectF
from PyQt5.QtGui import QStaticText, QFont, QPalette, QPainter, QTransform
from PyQt5.QtWidgets import QGraphicsObject, QWidget, QStyleOptionGraphicsItem
class StaticTextItem(QGraphicsObject):
"""
A text graphics object for displaying text in a QGraphicsScene.
@ales-erjavec
ales-erjavec / mod.c
Created January 31, 2019 21:55
A modulo operator in c
#include <stdio.h>
#include <limits.h>
#include <assert.h>
int mod(int a, int b) {
int res;
if (b < 0) {
// because -INT_MIN == INT_MIN
if (b > INT_MIN) {
return -mod(-a, -b);