Exemple #1
0
 def set_icon_size(self, size: int | types.SizeType):
     if isinstance(size, tuple):
         size = QtCore.QSize(*size)
     elif isinstance(size, int):
         size = QtCore.QSize(size, size)
     self._size = size
     self.update()
Exemple #2
0
    def minimumSize(self) -> QtCore.QSize:
        size = QtCore.QSize()

        for item in self.items:
            size = size.expandedTo(item.minimumSize())

        margin_width = 2 * self.contentsMargins().top()
        size += QtCore.QSize(margin_width, margin_width)
        return size
Exemple #3
0
 def set_size_hint(self, hint: types.SizeType, column: int = 0):
     if isinstance(hint, tuple):
         hint = QtCore.QSize(*hint)
     self.setSizeHint(column, hint)
Exemple #4
0
 def expanded_to(self, size: types.SizeType) -> Size:
     if isinstance(size, tuple):
         size = QtCore.QSize(*size)
     return Size(self.expandedTo(size))
Exemple #5
0
    def __repr__(self):
        return f"{type(self).__name__}({self.width()}, {self.height()})"

    def __getitem__(self, index) -> int:
        return (self.width(), self.height())[index]

    def __reduce__(self):
        return type(self), (self.width(), self.height())

    def expanded_to(self, size: types.SizeType) -> Size:
        if isinstance(size, tuple):
            size = QtCore.QSize(*size)
        return Size(self.expandedTo(size))

    def shrunk_by(self, margins: types.MarginsType) -> Size:
        if isinstance(margins, tuple):
            margins = QtCore.QMargins(*margins)
        return Size(self.marginsAdded(margins))

    def grown_by(self, margins: types.MarginsType) -> Size:
        if isinstance(margins, tuple):
            margins = QtCore.QMargins(*margins)
        return Size(self.marginsRemoved(margins))


if __name__ == "__main__":
    size = Size(10, 20)
    print(tuple(size))
    size = size.expanded_to(QtCore.QSize(100, 100))
    print(type(size))