Я разрабатываю приложение с графическим интерфейсом, используя Tkinter, и для этого проекта мне нужны кнопки для меню.Глядя на кнопки, я не был потрясен параметрами настройки, которые поставляются с кнопками, особенно когда я обнаружил, что вы можете привязывать аргументы щелчка к прямоугольникам.
Это позволяет мне настраивать «кнопку» (почти) безграничными способами, но чтобы позволить мне поместить текст на кнопку, мне нужно создать прямоугольный элемент и текстовый элемент и связать их вместе, используя Tkinter tag_bind
собственность.
Одним из свойств дизайна кнопки, которую я хотел, было активное заполнение, когда пользователь наводил курсор на элемент.Сейчас я просто использую activefill=""
, который работает, за исключением того, что текстовый элемент и элемент button будут заполняться только тогда, когда мышь находится над этим элементом.Так, например, при наведении курсора на кнопку кнопка, исключая текст, будет выделена, и наоборот, когда я наведу курсор мыши на текст.
Ниже приведена упрощенная (для краткости) версия того, что я использую для генерации кнопок;
button = canvas.create_rectangle(button_width, button_height, 10, 10, fill="000", activefill="111", tags="test")
text = canvas.create_text((button_width/2), (button_height/2), activefill="111", tags="test")
canvas.tag_bind("test", "<Button-1>", "foo")
Есть ли способ привязать активную функцию заполнения к тегу, а не к конкретномуelement?
Другой вариант заключается в том, что я полностью пропустил кучу информации о настройке кнопок в Tkinter, и мне не хотелось бы узнавать об этом.