Привязка к пикселям в wxpython

#python #user-interface #wxpython

#python #пользовательский интерфейс #wxpython

Вопрос:

Я создаю простой графический интерфейс для записи точек, которые нажимаются на изображение, с помощью wxpython. Тем не менее, я бы хотел, чтобы щелчок был привязан к определенным точкам на изображении. Пожалуйста, предложите методы.

Ответ №1:

Проще всего привязать к сетке фиксированного масштаба с помощью чего-то вроде:

 snap_x = scale * round(x / scale)
snap_y = scale * round(y / scale)
  

где масштаб — это размер вашей сетки, например, 10 пикселей.

Если точки распределены неравномерно, найдите ближайший на основе расстояния (или квадрата расстояния по соображениям эффективности).

Комментарии:

1. Но вы не «привязываете», вы только приближаете записанную точку. Как это поможет?

2. Это и есть привязка — выбор ближайшей точки. У вас было что-то еще на уме?

Ответ №2:

Вы могли бы взглянуть на библиотеку объектной графики wxPython. Документация немного скудная, но класс Diagram имеет прямую поддержку привязки к сеткам; взгляните на раздел Разное-> OGL демонстрации wxPython, чтобы получить некоторые идеи для начала. Я нахожусь в середине проекта w. OGL прямо сейчас — это здорово для того, что он делает, но, как я уже сказал, я нахожу документацию немного тонкой.

Комментарии:

1. Пожалуйста, дайте мне знать о лучшей альтернативе или, возможно, о хорошем способе изучения wxpython. модуль library.ogl

2. @Vishwanath — документация по OGL довольно скудная. Я обнаружил, что демонстрационный код wxPython наиболее полезен; в демонстрационном коде используется функция привязки к сетке. Вы также можете посмотреть запись wxPyWiki по этому вопросу, там также есть несколько альтернативных пакетов для рассмотрения.