Периодически выполняйте операцию, пока нажата QPushButotn - PullRequest
0 голосов
/ 30 марта 2020

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

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

1 Ответ

2 голосов
/ 30 марта 2020

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

Не забудьте также взглянуть на autoRepeatDelay и autoRepeatInterval.

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

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

...