【问题标题】:Capture Media Keys using PyQt使用 PyQt 捕获媒体密钥
【发布时间】:2017-05-29 08:55:06
【问题描述】:

这是我尝试捕获媒体键(如播放、暂停、上一个等)的代码:

import sys
from PyQt5.QtCore import Qt, QEvent
from PyQt5.QtWidgets import QWidget, QApplication


class test(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):      

        self.setGeometry(300, 300, 300, 300)
        self.show()
        app.installEventFilter(self)

    def eventFilter(self, source, event):
        if event.type() == QEvent.KeyPress:
            print('KeyPress: %s [%r]' % (event.key(), source))
        return super(test, self).eventFilter(source, event)


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = test()
    sys.exit(app.exec_())

它会捕获每个密钥,但不会捕获任何媒体密钥。我也尝试了 QKeySequenceEdit 并替换了 KeyPressEvent,但它们都没有捕获媒体键

【问题讨论】:

  • 您确定这不是硬件问题吗?您正在开发什么操作系统?我刚刚测试了您的代码,它在我的计算机上运行良好(包括多媒体键)。
  • 这不是硬件问题,因为热键在 Clementine 中有效。我的操作系统是带 KDE 的 Antegro
  • 好吧,我在 Windows 中对其进行了测试,所以这实际上可能是一个错误。我认为密钥Qt::AA_CaptureMultimediaKeys 存在于 Qt4 中,但在 Qt5 中被删除。您应该考虑打开一个错误报告(我不确定它是特定于 Qt5 还是 pyQt5)。

标签: python qt pyqt pyqt5


【解决方案1】:

我发现问题出在哪里:KDE 设置。它将我的媒体按钮设置为自己的播放器控件

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 2010-10-05
    • 2011-11-04
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    相关资源
    最近更新 更多