Питон, графика, окна произвольной формы без заголовка
Есть ли возможность создать окно произвольной формы в библиотеках pygame, pyglet, tkinter? (ЯП питон)
Я долго искал, как создавать графические окна в питон, под форму картинки, но нашёл только про библиотеку PyQt5, которая всё время глючит. Но не может же так быть, что такая возможность есть только в этой библиотеке?!
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Sorry, я плохо понимаю ваш вопрос.
Вернее я понимаю, что вам надо создать окно произвольной формы
используя библиотеках pygame, pyglet, tkinter.
Но зачем вы наговариваете на PyQt5, я совсем не понимаю.
Прежде чем запустить мой пример, убедитесь, что вы установили 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("Ok.png").scaled(
350, 350, 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())
label = QtWidgets.QLabel('<h1 style="color: red;">Hello World!</h1>', self)
label.move(80, 120)
button = QtWidgets.QPushButton("Закрыть окно", self)
button.setFixedSize(120, 30)
button.move(90, 220)
button.clicked.connect(QtWidgets.qApp.quit)
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(350, 350)
w.show()
sys.exit(app.exec_())

