がQGraphicsProxyWidgetを使用することで、あなたはその型のオブジェクトを作成することも、addWidgetを使用することができます。
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.phonon import Phonon
class Widget(QWidget):
def __init__(self, *args, **kwargs):
QWidget.__init__(self, *args, **kwargs)
lay = QVBoxLayout(self)
vp = Phonon.VideoPlayer()
media = Phonon.MediaSource('/path/of/video')
vp.load(media)
vp.play()
scene = QGraphicsScene()
self.view = QGraphicsView(scene, self)
lay.addWidget(self.view)
proxy = scene.addWidget(vp)
# or
# proxy = QGraphicsProxyWidget()
# scene.addItem(proxy)
self.item = scene.addEllipse(QRectF(0, 0, 20, 20), QPen(Qt.red), QBrush(Qt.green))
self.item.setParentItem(proxy)
def mousePressEvent(self, event):
p = self.view.mapToScene(event.pos())
# move item
self.item.setPos(p-QPoint(20, 20))
QWidget.mousePressEvent(self, event)
def resizeEvent(self, event):
if event.oldSize().isValid():
print(self.view.scene().sceneRect())
self.view.fitInView(self.view.scene().sceneRect(), Qt.KeepAspectRatio)
QWidget.resizeEvent(self, event)
if __name__ == '__main__':
app = QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())
出力:
私の答えをチェックし、もしそれは正しい方法で表示することを忘れないでください、あなたがそれを行う方法がわからない場合は、次のリンクを確認してください:[ツアー] – eyllanesc