Периодически выполнять операцию, пока нажата QPushButotn

У меня есть 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 ); });

Это работает, но я также хочу, чтобы до тех пор, пока не будет нажата одна из этих кнопок, я периодически переводил изображение, чтобы пользователь мог удерживать мышь на соответствующей кнопке для перевода вида на желаемое количество вместо многократных щелчков. Как я могу получить этот результат?


person Jepessen    schedule 30.03.2020    source источник
comment
Взгляните на QTimer.   -  person G.M.    schedule 30.03.2020


Ответы (1)


QAbstractButton имеет свойство autoRepeat, которое делает то, что вы хотите.

Не забудьте также посмотреть на autoRepeatDelay и autoRepeatInterval.

Проверьте документ для получения дополнительной информации.

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

person Erel    schedule 30.03.2020