Как я могу заставить mousePressEvent обновляться, если кнопка мыши удерживается нажатой? - PullRequest
0 голосов
/ 22 февраля 2012

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

В настоящее время я использую однократный таймер для повторения при нажатии, но кажется, что это неправильный способ «QT».

Ответы [ 2 ]

0 голосов
/ 24 февраля 2012

Если ваш виджет действует как кнопка пользовательского интерфейса (и большинство применений, о которых я могу подумать, предназначены для виджетов, действующих как кнопка), вы можете наследовать от QAbstractButton.Вам все еще нужно будет предоставить свой собственный чертеж, но этот виджет предоставляет свойство autoRepeat (и связанные параметры настройки), чтобы повторно генерировать сигнал щелчка, если пользователь удерживает кнопку мыши над виджетом.Однако не похоже, что он запускает обработчики событий.

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

0 голосов
/ 22 февраля 2012

Ваш метод кажется разумным, поскольку не похоже, что в Qt API есть соответствующее встроенное событие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...