首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在QT中QPushButton上捕捉“点击并保持”触摸事件的问题

在QT中QPushButton上捕捉“点击并保持”触摸事件的问题
EN

Stack Overflow用户
提问于 2014-10-17 11:46:22
回答 1查看 3.5K关注 0票数 1

我有一个QPushButton,其中我已经连接到pressed()信号,并设置autoRepeat=true

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

这对老鼠来说很好。单次单击步骤一次,单击并保持重复。简单的点击很好的使用触摸屏,但它不会重复“点击和保持”。

我已经尝试禁用Windows 8中的“点击并保持右键”设置,但这并没有帮助。它只会防止右击发生。

如果我点击QPushButton并将手指从按钮上移开(同时仍在按住),然后将手指移回QPushButton工作状态,则按下()事件将启动autoRepeating。

MyPanel.ui:

代码语言:javascript
复制
<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>

MyPanel.cpp:

代码语言:javascript
复制
void MyPanel::UpAction()
{
    myNumber += 1;
}
EN

回答 1

Stack Overflow用户

发布于 2014-12-29 22:26:20

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

你忘了通过在你的上设置grabGesture(Qt::TapAndHoldGesture);来抓住的手势。当您启用此功能时,您的QPushButton将开始通过其event获取TapAndHoldGesture。因此,您需要使用过度的QPushButton方法从event继承按钮类。现在您可以控制手势识别和处理的整个过程。看看图像手势示例这个例子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26424333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档