我在用
event->key()== Qt::Key_Down
使用Qt中的箭头键进行控制和对象化。
对于所有箭头键(向右,向左,向上和向下),我都具有相同的功能,但是发生的事情是非常严格的。想要左右移动,您必须按向右箭头键,然后释放它,然后按向下箭头键。而我希望用户能够同时演示并重新定位。我试过了,但无济于事。
else if(event->key()== Qt::Key_Down && event->key()== Qt::Key_Right ){
setPos(x()+10,y()+10);
}
最佳答案
与大多数事件处理程序一样,Qt仅告诉您何时按下某个键,并将所有按键放入队列。因此,带有&&
的代码将永远不会被调用,因为如果Qt::Key_Down和Qt::Key_Right会被一个接一个地处理,那么它们就会被按下。
您需要的功能是检查是否按住了键,即是否按住了左键然后向左走,如果按住了向下键就往下走,如果同时按住了两个键就往左下走。
Qt对此没有任何功能。其他人则推荐了操作系统特定的解决方案,例如使用windows.h
和#ifdefs
。
看看这个问题:
Check if a Key is Down with Qt
祝好运!
关于c++ - ArrowKey控制更多流体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29155846/