C++ “捕捉问题”;轻触并按住“;QT中QPushButton上的触摸事件

C++ “捕捉问题”;轻触并按住“;QT中QPushButton上的触摸事件,c++,qt,windows-8,touch,multi-touch,C++,Qt,Windows 8,Touch,Multi Touch,我有一个QPushButton,在那里我连接到pressed()信号,并设置autoRepeat=true 当单击(使用鼠标)时,该按钮会更新一个数字,当您单击并按住该按钮时,它会重复 这对鼠标很好。单击步骤一次,单击并按住可重复该步骤。使用触摸屏时,简单的点击可以正常工作,但在“点击并按住”时不会重复 我曾尝试在Windows8中禁用“点击并按住鼠标右键单击”设置,但没有帮助。它只会阻止右键单击的发生 如果我轻触QPushButton并将手指从按钮上移开(同时仍保持按住),然后将手指移回QPu

我有一个
QPushButton
,在那里我连接到
pressed()
信号,并设置
autoRepeat=true

当单击(使用鼠标)时,该按钮会更新一个数字,当您单击并按住该按钮时,它会重复

这对鼠标很好。单击步骤一次,单击并按住可重复该步骤。使用触摸屏时,简单的点击可以正常工作,但在“点击并按住”时不会重复

我曾尝试在Windows8中禁用“点击并按住鼠标右键单击”设置,但没有帮助。它只会阻止右键单击的发生

如果我轻触QPushButton并将手指从按钮上移开(同时仍保持按住),然后将手指移回QPushButton工作状态,则pressed()事件将开始自动重复

MyPanel.ui:

<widget class="QPushButton" name="UpButton">
  <property name="text">
    <string/>
  </property>
  <property name="autoRepeat">
    <bool>true</bool>
  </property>
</widget>

<connection>
  <sender>UpButton</sender>
  <signal>pressed()</signal>
  <receiver>my_panel</receiver>
  <slot>UpAction()</slot>
  <hints>
    <hint type="sourcelabel">
      <x>40</x>
      <y>261</y>
    </hint>
    <hint type="destinationlabel">
      <x>121</x>
      <y>37</y>
    </hint>
  </hints>
</connection>
void MyPanel::UpAction()
{
    myNumber += 1;
}

别忘了看一下官方文件--。在那里,您可以找到有关处理手势的有用信息


通过设置
抓取手势(Qt::TapandHoldspire),您忘记了抓取您的手势QPushButton
上选择code>。启用此选项后,您的
QPushButton
通过其
事件开始抓取
tap和保持手势。因此,您需要使用重写的
event
方法从
QPushButton
继承按钮类。您现在可以控制手势识别和处理的整个过程。请看一个例子

您是否尝试过使用
Qt::TapandHoldship