Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Как вывести несколько сложных объектов на канву? [RSS Feed]

#1 Июль 15, 2019 20:38:01

sd001034
Зарегистрирован: 2019-07-15
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вывести несколько сложных объектов на канву?

Подскажите, пожалуйста, как можно вывести несколько составных объектов на канву?
Например: создать прямоугольник, на нем разместить несколько надписей и картинок, вывести все это на канву и оперировать этим всем как одним объектом, т.е. перемещать, создавать подобные объекты, удалять и т.д. Как создать фигуру и перемещать ее я понимаю, но как рисовать на этой фигуре, как использовать ее как канву?

from tkinter import *
root = Tk()

c = Canvas(root, width=200, height=200, bg='white')
c.pack()

obj = Canvas(c, width=20, height=20, bg='yellow')
obj .pack()

Так получиться?

Отредактировано sd001034 (Июль 15, 2019 21:01:05)

Офлайн

#2 Июль 16, 2019 00:16:26

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4137
Репутация: +  252  -
Профиль   Отправить e-mail  

Как вывести несколько сложных объектов на канву?

sd001034
но как рисовать на этой фигуре, как использовать ее как канву?
Все что что рисуется позже будет рисоваться поверх того что уже нарисовано. Те достаточно уметь рисовать на канве.

sd001034
т.е. перемещать, создавать подобные объекты,
Перемещения, удаления на канве не бывает. Перемещать на канве это обычно все стереть (те нарисовать однотонный прямоугольник на всю канву) и нарисовать все фигуры снова.



Отредактировано doza_and (Июль 16, 2019 00:17:19)

Офлайн

#3 Июль 16, 2019 10:30:49

rami
Зарегистрирован: 2018-01-08
Сообщения: 278
Репутация: +  71  -
Профиль   Отправить e-mail  

Как вывести несколько сложных объектов на канву?

sd001034
Как создать фигуру и перемещать ее я понимаю, но как рисовать на этой фигуре, как использовать ее как канву?
Если вы знаете как создавать и перемещать фигуру, что мешает создать много фигур, задать им один тег и перемещать их как одно целое? Нет никакой разницы между одной фигурой и группой фигур с одинаковым тегом. Смотрите пример:
 from tkinter import Tk, Canvas
 
W, H = 500, 500    #размеры Canvas
 
def move_tag(e):
    c.scan_dragto(e.x, e.y, gain=1)
 
def cur_coords(e):
    c.scan_mark(e.x, e.y)
 
 
root = Tk()
c = Canvas(root, width=W, height=H)
c.bind('<ButtonPress-1>', cur_coords)
c.bind('<B1-Motion>', move_tag)
c.pack()
 
c.create_rectangle(110, 210, 310, 410, fill='yellow', tags='asd')
c.create_oval(120, 310, 300, 400, fill='green', tags='asd')
c.create_text(170, 230, text='Надпись', fill='red', font=("Times", "24", "bold italic"), tags='asd')
 
root.mainloop()

Офлайн

  • Начало
  • » GUI
  • » Как вывести несколько сложных объектов на канву?[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version