Я работаю над приложением 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())
Но произошло нечто «странное»: после этой команды курсор переместился «за пределы» моей кнопки, чтобы граница между виджетом хоста и самой кнопкой.