Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python qgraphicsview上的声子视频小部件_Python_Qt_Pyside_Phonon_Qgraphicsscene - Fatal编程技术网

Python qgraphicsview上的声子视频小部件

Python qgraphicsview上的声子视频小部件,python,qt,pyside,phonon,qgraphicsscene,Python,Qt,Pyside,Phonon,Qgraphicsscene,我想在QGraphicscene上放置一个声子videowidget,这样我就可以覆盖图形等。当我运行下面的程序时,我会得到声音,但qgraphicsview上不会播放视频。如能如示例所示,如我所想,将不胜感激。然而,我怀疑我是如何理解videoplayer和videowidget的 为了测试,我只是直接播放一个文件中的视频 from PySide import QtGui, QtCore from PySide.phonon import Phonon from window import U

我想在QGraphicscene上放置一个声子videowidget,这样我就可以覆盖图形等。当我运行下面的程序时,我会得到声音,但qgraphicsview上不会播放视频。如能如示例所示,如我所想,将不胜感激。然而,我怀疑我是如何理解videoplayer和videowidget的

为了测试,我只是直接播放一个文件中的视频

from PySide import QtGui, QtCore
from PySide.phonon import Phonon
from window import Ui_MainWindow # main GUI window
import os, sys

class DiagramScene(QtGui.QGraphicsScene):
    InsertItem, InsertLine, InsertText, MoveItem  = range(4)

    def __init__(self):
        super(DiagramScene, self).__init__()
        self.myLineColor = QtCore.Qt.black
        self.myMode = "Start"
        self.line = None

    def mousePressEvent(self, mouseEvent):
        if (mouseEvent.button() == QtCore.Qt.LeftButton):
            if self.myMode == "Start":
                self.line = QtGui.QGraphicsLineItem(QtCore.QLineF(mouseEvent.scenePos(), mouseEvent.scenePos()))
                self.addItem(self.line)
        elif (mouseEvent.button() == QtCore.Qt.RightButton):
            self.addText("Hello")
        super(DiagramScene, self).mousePressEvent(mouseEvent)

    def mouseMoveEvent(self, mouseEvent):
        if self.line:
            newLine = QtCore.QLineF(self.line.line().p1(), mouseEvent.scenePos())
            self.line.setLine(newLine)

    def mouseReleaseEvent(self, mouseEvent):
        self.line = None
        super(DiagramScene, self).mouseReleaseEvent(mouseEvent)

class QPlayer(QtGui.QWidget):

    def __init__(self):
        super(QPlayer, self).__init__()
        media_src = Phonon.MediaSource("C:\Users\Public\Videos\Sample Videos\Wildlife.wmv")
        self.audioOuptut=Phonon.AudioOutput(Phonon.MusicCategory, self)
        self.player=Phonon.MediaObject(self)
        self.player.setCurrentSource(media_src)
        Phonon.createPath(self.player, self.audioOuptut)
        self.videoWidget=Phonon.VideoWidget(self)
        self.videoWidget.FitInView
        Phonon.createPath(self.player, self.videoWidget)
        self.player.play()

class Main(QtGui.QMainWindow):
    def __init__(self):
        super(Main, self).__init__()
        self.ui=Ui_MainWindow()
        self.ui.setupUi(self)
        self.scene = DiagramScene()
        self.scene.addWidget(QPlayer())
        self.gview = self.ui.gView
        self.gview.setScene(self.scene)

def main():
    app = QtGui.QApplication(sys.argv)
    window=Main()
    window.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()
好吧,我想我已经(在一定程度上)整理好了。简单情况如下:

self.videoWidget.setMinimumSize(640,480)
这段视频运行得不太好——经常中断,但至少我可以利用它:)