Как можно разместить png картинку за пределами окна tkinter

Как можно было бы сделать например новогоднюю шляпу за пределами окна tkinter вот таквведите сюда описание изображения

если что это фотошоп


Ответы (1 шт):

Автор решения: S. Nick

Прежде чем запустить мой пример, убедитесь, что вы установили PyQt5

pip install PyQt5
pip install pyqt5-tools

PyQt — реализация фреймворка Qt для языка Python.

import sys
from PyQt5 import QtCore, QtWidgets, QtGui

 
class Demo(QtWidgets.QWidget):
    def __init__(self):
        super().__init__() 

        pixmap = QtGui.QPixmap("NY2.png").scaled(
            150, 150, QtCore.Qt.KeepAspectRatio, QtCore.Qt.FastTransformation)

        pal = self.palette()
        pal.setBrush(QtGui.QPalette.Normal, QtGui.QPalette.Window, QtGui.QBrush(pixmap))
        pal.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, QtGui.QBrush(pixmap))
        self.setPalette(pal)
        self.setMask(pixmap.mask())
        self.offset = None
        self.installEventFilter(self)

    def eventFilter(self, source, event):
        if event.type() == QtCore.QEvent.MouseButtonPress:
            self.offset = event.pos()
        elif event.type() == QtCore.QEvent.MouseMove and self.offset is not None:
            self.move(self.pos() - self.offset + event.pos())
            return True
        elif event.type() == QtCore.QEvent.MouseButtonRelease:
            self.offset = None
        return super().eventFilter(source, event)

        
if __name__=='__main__':
    app = QtWidgets.QApplication(sys.argv)
    w = Demo()
    w.resize(150, 150)
    w.show()
    sys.exit(app.exec_())

введите сюда описание изображения

→ Ссылка