Вполне вероятно, что это всего лишь общий вопрос о Python Tkinter, а не обязательно о matplotlib.
Итак, я разрабатываю довольно большой набор функций построения графиков поверх matplotlib с использованием бэкэнда Matplotlib «TkAgg» (рендеринг Agg на холст Tk с использованием TkInter). Я использую некоторые функции масштабирования по умолчанию, предоставляемые matplotlib из коробки... в частности, кнопку «Увеличить до поля» на панели инструментов matplotlib по умолчанию. Я создаю свою собственную панель инструментов, создавая подкласс существующего класса «matplotlib.backends.backend_tkagg.NavigationToolbar2TkAgg».
В значительной степени проблема здесь в том, что я ненавижу значок по умолчанию, который использует «Увеличить до окна» (Tkinter «tcross»). Я понял, как использовать другой встроенный курсор Tkinter (например, это меняет курсор на «плюс» вместо «tcross»):
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.backend_bases
import matplotlib.backends.backend_tk_agg
matplotlib.backends.backend_tkagg.cursord[matplotlib.backend_bases.cursors.SELECT_REGION] = "plus"
И вообще, я знаю, что для смены текущего курсора мыши на один из встроенных в Tkinter из класса панели инструментов я могу просто вызвать:
self.window.configure(cursor="cursor_name")
Так что мне бы очень, очень хотелось иметь возможность использовать значок увеличительного стекла, когда пользователь находится в «режиме масштабирования». У меня уже есть .ppm значка увеличительного стекла, который я хотел бы использовать, и все такое, но я не могу понять, как использовать увеличительное стекло в качестве значка курсора мыши. Можно ли использовать пользовательское изображение в качестве курсора мыши в Python Tkinter? Помощь!
Примечание о платформе. Это должно работать в Mac OS X 10.5+, RedHat Enterprise Linux 5 и, возможно, в Solaris 10, поэтому решение для конкретной платформы нежелательно.