Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 8, 2016 08:06:49

vito-Z80
Зарегистрирован: 2015-09-10
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter наложеные теги

Есть прямоугольник с текстом, хочется что бы наведя мышкой на любую область этих объектов срабатывал 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)

Офлайн

#2 Июнь 8, 2016 08:09:37

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

tkinter наложеные теги

if len(tags)>=1:
        canvas.itemconfigure(tags[0],fill='color',outline='color')
        canvas.itemconfigure(tags[1],fill='color')

В коде бок

Офлайн

#3 Июнь 8, 2016 08:15:12

vito-Z80
Зарегистрирован: 2015-09-10
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter наложеные теги

4kpt_IV
какой бок, о чем это вообще?

Офлайн

#4 Июнь 8, 2016 08:31:10

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

tkinter наложеные теги

Что будет, если

len(tags)==1

Офлайн

#5 Июнь 8, 2016 08:36:37

vito-Z80
Зарегистрирован: 2015-09-10
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter наложеные теги

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 (Июнь 8, 2016 10:11:23)

Офлайн

#6 Июнь 9, 2016 07:08:57

vito-Z80
Зарегистрирован: 2015-09-10
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter наложеные теги

мёртвый форум….

один залез - что то подправил (что собственно и не имело значения, так как было приведено для наглядности) не дав ответа, и показал из себя знатока перед новичком(гордо ухмыляясь).

Офлайн

#7 Июнь 9, 2016 08:38:48

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

tkinter наложеные теги

Хотел писать ответ. После последнего поста желание ушло. Прошу прощения, что не могу сидеть возле компьютера круглые сутки и отвечать на Ваши вопросы на форуме. Кушать все же что-то надо. Удачи.

Офлайн

#8 Июнь 10, 2016 03:38:05

vito-Z80
Зарегистрирован: 2015-09-10
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter наложеные теги

4kpt_IV
Хотел писать ответ. После последнего поста желание ушло. Прошу прощения, что не могу сидеть возле компьютера круглые сутки и отвечать на Ваши вопросы на форуме. Кушать все же что-то надо. Удачи.
если бы хотел, сразу бы его дал.
до самого дойдет со временем, я не тороплюсь.

Отредактировано vito-Z80 (Июнь 10, 2016 03:40:22)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version