【问题标题】:Howto embed a video via mpylayer into a QWidget frame?如何通过 myplayer 将视频嵌入到 QWidget 框架中?
【发布时间】:2012-08-14 05:43:23
【问题描述】:

PyQt4 中是否可以通过mpylayer 将视频嵌入QWidget(或它的子类)。如果是这样,您能否提供一个最小的工作示例。

【问题讨论】:

    标签: python pyqt4


    【解决方案1】:

    有关嵌入 MPlayer 的 Qt Widget 的完整示例,请尝试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 上测试过)

    【讨论】:

    • @student。完全错过了您使用mpylayer。无论如何,我已经相应地更新了我的演示脚本。
    • 没有mpylayer可以吗?也许使用PyQt4.phonon
    • @mrgloom。不完全确定您的意思,但 original version of my answer 不使用 mpylayer
    【解决方案2】:

    您必须获取小部件的句柄(id)→http://qt-project.org/doc/qt-4.8/qwidget.html#winId 并将其传递给 MPlayer 的-wid 选项。

    我不能给你一个Qt的例子,只是因为我不知道Qt,但是我已经为wxPython写了一个MplayerCtrl:https://bitbucket.org/dav1d/mplayerctrl

    相关代码:https://bitbucket.org/dav1d/mplayerctrl/src/c680a1d99ad2/MplayerCtrl.py#cl-873

    【讨论】:

    • 感谢您的提示。但我需要更多细节。也许有 PyQt 知识的人可以添加一个最小的例子
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 2013-01-24
    • 2012-08-02
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 2013-08-22
    相关资源
    最近更新 更多