PyGame и сенсорный экран

Вопрос: Я создал графический интерфейс pygame с кнопками, которые активируются, когда пользователь нажимает на них. Графический интерфейс хорошо работает, когда я использую свою настоящую мышь, но когда я запускаю графический интерфейс на PITFT ), кнопки не реагируют на клики (даже если я использую более сложную материал, чем мой палец, как стилус). Поэтому возникает вопрос: совместимо

Вопрос:

Я создал графический интерфейс 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 и проверьте, не делает ли это что-либо при использовании экрана, клавиатуры или мыши!

Если это происходит, повторите процедуру установки.

Оцените статью
Добавить комментарий