#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 по этому вопросу, там также есть несколько альтернативных пакетов для рассмотрения.