按下QPushButotn时定期执行操作

问题描述 投票:0回答:1

我有一个QGraphicsView,其中有一些按钮用于翻译视图。当我单击其中一个按钮时,视图即被翻译。我使用以下连接来执行操作(我将QGraphicsView子类化:

connect(m_upButton, &QPushButton::clicked, [this](){ verticalScrollBar()->setValue( verticalScrollBar()->value() - TranslateFactor ); });
connect(m_downButton, &QPushButton::clicked, [this](){ verticalScrollBar()->setValue( verticalScrollBar()->value() + TranslateFactor ); });
connect(m_leftButton, &QPushButton::clicked, [this](){ horizontalScrollBar()->setValue( horizontalScrollBar()->value() - TranslateFactor ); });
connect(m_rightButton, &QPushButton::clicked, [this](){ horizontalScrollBar()->setValue( horizontalScrollBar()->value() + TranslateFactor ); });

[它有效,但是我还希望在按下其中一个按钮之前,我会定期翻译图像,因此用户可以在相应按钮上按住鼠标以翻译所需量的视图,而无需多次单击。如何获得此结果?

c++ qt qgraphicsview qpushbutton translate-animation
1个回答
2
投票

[QAbstractButton具有一个名为autoRepeat的属性,它可以满足您的需求。

[也不要忘记查看autoRepeatDelayautoRepeatInterval

检查文档以获取更多信息。

https://doc.qt.io/qt-5/qabstractbutton.html

© www.soinside.com 2019 - 2024. All rights reserved.