在按下 QPushButotn 时定期执行操作

Execute operation periodically while QPushButotn is pressed

我有一个 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 ); });

它有效,但我还希望在按下其中一个按钮之前,我会定期平移图像,这样用户可以在相应按钮上按住鼠标以平移所需数量的视图,而不是点击多次。我怎样才能得到这个结果?

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

别忘了看看 autoRepeatDelayautoRepeatInterval

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

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