これは、この回答に対するフォローアップの質問です:https ://stackoverflow.com/a/11939294/406686 :
mplayerをに埋め込む次のコードについて考えてみますQWidget
。問題は、前方にシークするための右矢印などのmplayerキーボードショートカットに反応しないことです。
すべてのショートカットを手動で再実装できることは明らかです。ただし、修飾キー、たとえばALTまたはWin-Keyが押されている限り、すべてのキーボードシーケンスをmplayerに自動的にパイプする方法はありますか?
ALT例: +を押します→</kbd> = seek forward...
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_())