Вопрос:
Я создал графический интерфейс pygame с кнопками, которые активируются, когда пользователь нажимает на них. Графический интерфейс хорошо работает, когда я использую свою настоящую мышь, но когда я запускаю графический интерфейс на PITFT ), кнопки не реагируют на клики (даже если я использую более сложную материал, чем мой палец, как стилус).
Поэтому возникает вопрос: совместимо ли событие Pygame click с PITFT или есть ли какое-то “специальное” событие для него?
Вот текущее событие мыши, которое я использую в своем коде:
def run(self): «»»Lance la boucle principale pour gérer les événements «»» while True: event = pygame.event.wait() if event.type == MOUSEBUTTONDOWN and event.button == 1 and not self.keep_level_2: self.click(event.pos) elif event.type == MOUSEBUTTONUP and event.button == 1: self.release(event.pos)’
Я печатаю в Интернете и обнаружил, что для использования PiTft вам нужно добавить следующие строки:
os.environ[‘SDL_VIDEODRIVER’] = ‘fbcon’ os.environ[«SDL_FBDEV»] = «/dev/fb1» os.environ[«SDL_MOUSEDEV»] = «/dev/input/touchscreen» os.environ[«SDL_MOUSEDRV»] = «TSLIB»
Поэтому я попытался добавить их, но сенсорный экран все еще не отвечает.
Кроме того, когда для запуска программы я не могу ее покинуть (CTRL C и escape не работают).
Примечание. Мой код не работает в python 3
Ответ №1
Я думаю, что происходит, вы делаете кнопку вверх, кнопку вниз.
Я получаю мой графический интерфейс pygame для работы, идя…
click = pygame.mouse.get_pressed() if x+w > mouse_pos[0] > x and y+h > mouse_pos[1] > y: pygame.draw.rect(screen, ac,(x,y,w,h)) if click[0] == 1 and action != None: action()
ОДНАКО для меня это создает другие проблемы, потому что я не думаю, что 1 нажатие на сенсорном экране является одним нажатием кнопки SMOOTH. Что для меня происходит, так это то, что моя кнопка щелкнет, тогда без видимой причины будет второй щелчок (я думаю, из-за “пуха” в щелчке).
В результате кнопки “on” включаются (они работают отлично), а затем они выключаются. Не совсем уверен, что с этим делать, но, надеюсь, он заработает ваш проект.
Ответ №2
Вы проверили, что ваш /dev/input/touchscreen “связан” с правильным модулем? Проверьте evtest/dev/input/touchscreen и проверьте, не делает ли это что-либо при использовании экрана, клавиатуры или мыши!
Если это происходит, повторите процедуру установки.