QPushButton с включенным autoRepeat: сигналы теряются при отключенной кнопке - PullRequest
0 голосов
/ 21 апреля 2020

Я работаю над приложением Debian 10 с PyQt 5.9.7.

Я пытаюсь заставить кнопки работать как кнопки «нажатия» (они приводят двигатель в движение при нажатии кнопки). Следуя документации Qt (https://doc.qt.io/qt-5/qabstractbutton.html#autoRepeat -prop ), я добавил некоторые свойства к кнопкам и со свойством oneClickPressButton изменил их свойство autoRepeat:

self.move_left_button.setAutoRepeat(new_state)

Проблема заключается в том, что кнопки отключены и включены во время движения. И кажется, что когда кнопка отключается, то она «теряет» сигналы «нажать (), отпущено () и нажата (), которые излучаются через равные промежутки времени, когда кнопка нажата».

Если кто-то знает, как избежать этого отключения сигнала, я буду рад услышать решение.

Пока я нашел «решение» (я не уверен, заслуживают ли они этого имени):

Если пользователь (с нажатой кнопкой мыши над кнопкой) слегка перемещает мышь после возврата кнопки назад, то нажатый сигнал будет получен снова. Поэтому я попытался «переместить» мышь, когда кнопка мыши была нажата над кнопкой приложения:

cursor = QCursor()
tmp = cursor.pos()
cursor.setPos(tmp.x() + 1, tmp.y())

Но произошло нечто «странное»: после этой команды курсор переместился «за пределы» моей кнопки, чтобы граница между виджетом хоста и самой кнопкой.

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