Найти - Пользователи
Полная версия: tkinter наложеные теги
Начало » GUI » tkinter наложеные теги
1
vito-Z80
Есть прямоугольник с текстом, хочется что бы наведя мышкой на любую область этих объектов срабатывал activefill у обеих объектов. Срабатывают они по отдельности, так как текст сверху прямоугольника и перекрывает часть прямоугольника, что не дает сработать activefill для прямоугольника при наведении на текст и наоборот.

Нашел find_overlapping - возвращает все теги местоположения мыши, опять же наведя на чистую часть прямоугольника вернет всего 1 тег (прямоугольника), а вот наведя на текст вернет уже 2 тега(текст+прямоугольник) - что то-же не очень удобно так как там могут быть больше объектов чем 2.

Если придать объектам один тег, то не смогу воспользоваться itemconfigure на полную, так как атрибуты у объектов бывают разные а разлепить я эти объекты уже не смогу.

Подскажите как решить такую задачу без плясок, буду очень благодарен.

canvas.create_rectangle(x,y,x1,y1,fill='color',activefill='color')
canvas.create_text(x,y,fill='color',activefill='color')
def active(event):
    tags=canvas.find_overlapping(event.x,event.y,event.x,event.y)
    if len(tags)>=1:
        canvas.itemconfigure(tags[0],fill='color',outline='color')
        canvas.itemconfigure(tags[1],fill='color')
canvas.bind('<Motion>',active)
4kpt_IV
if len(tags)>=1:
        canvas.itemconfigure(tags[0],fill='color',outline='color')
        canvas.itemconfigure(tags[1],fill='color')

В коде бок
vito-Z80
4kpt_IV
какой бок, о чем это вообще?
4kpt_IV
Что будет, если

len(tags)==1
vito-Z80
4kpt_IV
Что будет, если

        if len(tags)>=1:
            table.canvas.itemconfigure(tags[0],fill='black')
            table.canvas.itemconfigure(tags[0]+1,fill='white')

как сделать это без события с помощью атрибутов объектов activefill ?если нет, то к ‘<Motion>’ еще и ‘<Leave>’ делать придется, но что бы нужные объекты были в группу объединены или как то еще.
vito-Z80
мёртвый форум….

один залез - что то подправил (что собственно и не имело значения, так как было приведено для наглядности) не дав ответа, и показал из себя знатока перед новичком(гордо ухмыляясь).
4kpt_IV
Хотел писать ответ. После последнего поста желание ушло. Прошу прощения, что не могу сидеть возле компьютера круглые сутки и отвечать на Ваши вопросы на форуме. Кушать все же что-то надо. Удачи.
vito-Z80
4kpt_IV
Хотел писать ответ. После последнего поста желание ушло. Прошу прощения, что не могу сидеть возле компьютера круглые сутки и отвечать на Ваши вопросы на форуме. Кушать все же что-то надо. Удачи.
если бы хотел, сразу бы его дал.
до самого дойдет со временем, я не тороплюсь.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB