Я сейчас изучаю PyQt и особенно QGraphicsScene. Прямо сейчас я пытаюсь нарисовать некоторые сложные вещи, например, «человеческую руку», но я нахожу QPainterPath немного сложным. Что можете посоветовать? Может быть, используя какой-нибудь openGL или какой-нибудь фото импорт изображений? Я также немного беспокоюсь о скорости, я был бы признателен за ответы, которые учитывают этот фактор. Приведу пример рисунка, которого хочу добиться. Спасибо
Если вы хотите реализовать сложные вещи, создайте образ, так как вы сэкономите время.
from PySide2 import QtCore, QtGui, QtWidgets
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
scene = QtWidgets.QGraphicsScene(backgroundBrush=QtCore.Qt.gray)
w = QtWidgets.QGraphicsView(scene)
pixmap = QtGui.QPixmap("hand128.png")
pixmap_item = QtWidgets.QGraphicsPixmapItem(pixmap)
pixmap_item.setFlags(
pixmap_item.flags()
| QtWidgets.QGraphicsItem.ItemIsSelectable
| QtWidgets.QGraphicsItem.ItemIsMovable
)
scene.addItem(pixmap_item)
w.show()
sys.exit(app.exec_())
@Vlad В том, что вам нужно выбирать между памятью или скоростью, если это быстро, мой вариант правильный, так как задача «создания образа» не будет выполнена, но, в свою очередь, вам придется загрузить 100 изображений в оперативную память, но если вы хотите сохранить память, вам придется сделать картину онлайн, что предполагает время «создания изображения», но для 100 изображений я не вижу разницы. В конце концов, последний вариант зависит от тестов, которые вы делаете.
Спасибо, мой спаситель в PyQt :) Как вы думаете, это хорошая практика (скорость) в долгосрочной перспективе? Особенно, если в будущем вы собираетесь делать из него что-то вроде пуговиц? Так как мне еще понадобится нажатое состояние и т.д. Я думал еще и о картинках, но если у меня будет 50 кнопок в одном UI, то будет уже 100 картинок.