这是此答案的后续问题: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_())