python - PyQt 中的 QKeyPress 事件

标签 python qt event-handling pyqt piano

我的软件有问题。在我的钢琴软件中,如果我一直按下键盘上的一个键,那么它就会重复多次重复该特定键的相同音调。但实际上我需要一个单一的音调,直到释放那个特定的键。我提供了一部分代码来检测 keyPress 事件并调用相应的方法。那么我必须对我的代码进行哪些更改??

def keyPressEvent(self, event):
    if type(event) == QtGui.QKeyEvent and event.key() == QtCore.Qt.Key_A : 
        self.Playnote('/home/hemanth/hemanth/Piano/C.mp3')
        self.ui.pushButton.animateClick(100)
    if type(event) == QtGui.QKeyEvent and event.key() == QtCore.Qt.Key_S:
        self.Playnote('/home/hemanth/hemanth/Piano/D.mp3')
        self.ui.pushButton_2.animateClick(100)

最佳答案

你应该检查event.isAutoRepeat()以确定事件是由键盘自动重复还是实际按键引起的。如果是自动重复,请忽略该按。

关于python - PyQt 中的 QKeyPress 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10046945/

相关文章:

python - 本地调试 python 3.7 AWS lambda

Python-根据另一个数据帧匹配替换数据帧中的值

C++ Qt 是如何工作的?

python - 作为非根用户的主管

c++ - Qt 将 QImage 保存到相对位置

c++ - 将 QObject 指针从 QML 对象传递到 C++

javascript - 您如何设计和实现应用程序范围的事件检测机制来捕获大型 Angular 应用程序中的点击事件?

event-handling - svelte:如何在我自己的组件中使用事件修饰符

java - 具有相同事件监听器的堆叠组件

python - Openshift:如何从私有(private)存储库安装 python 模块?