2

を介して(またはそのサブクラスに)PyQt4ビデオを埋め込むことは可能ですか?もしそうなら、あなたは最小限の実用的な例を提供できますか?mpylayerQWidget

4

2 に答える 2

3

MPlayerを組み込んだQtウィジェットの完全な例については、qmpwidgetを試してください。

しかし、これがあなたが始めるための最小限のPyQtデモです:

import mpylayer
from PyQt4 import QtGui, QtCore

class Window(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.container = QtGui.QWidget(self)
        self.container.setStyleSheet('background: black')
        self.button = QtGui.QPushButton('Open', self)
        self.button.clicked.connect(self.handleButton)
        layout = QtGui.QVBoxLayout(self)
        layout.addWidget(self.container)
        layout.addWidget(self.button)
        self.mplayer = mpylayer.MPlayerControl(
            'mplayer', ['-wid', str(self.container.winId())])

    def handleButton(self):
        path = QtGui.QFileDialog.getOpenFileName()
        if not path.isEmpty():
            self.mplayer.loadfile(unicode(path))

if __name__ == '__main__':

    import sys
    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.resize(640, 480)
    window.show()
    sys.exit(app.exec_())

:このデモはLinuxでのみテストされています)

于 2012-08-13T17:28:57.600 に答える
1

ウィジェットのハンドル(id)を取得する必要があります→ http: //qt-project.org/doc/qt-4.8/qwidget.html#winId そしてそれを-widMPlayerのオプションに渡します。

Qtがわからないという理由だけで、Qtの例を提供することはできませんが、wxPython用のMplayerCtrlをすでに作成しています:https ://bitbucket.org/dav1d/mplayerctrl

関連コード:https ://bitbucket.org/dav1d/mplayerctrl/src/c680a1d99ad2/MplayerCtrl.py#cl-873

于 2012-06-15T13:54:48.670 に答える