qt按钮发出多个信号

时间:2011-02-04 10:00:15

标签: qt signals mouseevent

是否有Qt(我使用Qt 4.7.1)小部件在按下时发出信号(第一次不是一个)并在用户释放鼠标时停止?像标准间隔中的mousedown事件? 或者我必须用qtimer实现这个? 感谢

3 个答案:

答案 0 :(得分:4)

查看QAbstractButton::autoRepeat和autoRepeatInterval。它应该是您所需要的,并且可用于所有按钮。

答案 1 :(得分:0)

在用户释放鼠标之前,您必须实现触发事件的内容。

我建议你创建一个连接到按钮事件的处理程序类,它根据你的观察者的喜好触发自定义事件。

答案 2 :(得分:0)

据我所知,没有这样的按钮小部件。 QPushButton的{​​{1}}应该按你想要的那样做。但是,QPushButton::pressed()QPushButton::released()信号不能满足您的需求吗?

无论如何,你所描述的内容非常容易(并且冗余,因为它已经存在)来实现,将QTimer::timeout()信号连接到你想要的信号,然后在autoRepeat上启动计时器发信号并在pressed()信号上停止:)

编辑:正如评论中所指出的那样,有一个内置解决方案,即将autoRepeat继承的QAbstractButton属性设置为released()

您可以通过调整autoRepeatDelayautoRepeatInterval来自定义初始延迟和间隔。