Нужна помощь в рисовании овалов

dfdf

Новичок
Пользователь
Май 17, 2020
2
0
1
Тут у меня рисуется овал при нажатии на кнопку мыши.
Но мне нужно ограничить количество нарисованных овалов. Как это можно сделать? (IDLE(Python 3.6))
Python:
def f(e):
    
        print(e.x, e.y)
        xk=e.x
        yk=e.y
        if e.x > 400 and e.x < 1400 and e.y > 100 and e.y < 900:
                  holst.create_oval(xk,yk,xk+40,yk+40, fill="gray", tag="fig")
        
holst.bind('<Button-1>', f)
 
Последнее редактирование:

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Здравствуйте! Спасибо за ответ! Но теперь возник такой вопрос. У меня введены ограничения на область рисования. Когда тыкаешь на то место, где НЕ должен рисоваться овал, он естественно не рисуется. Но! после этого, теперь, в области, где овал должен возникать, он рисуется только оставшиеся 4 раза. Если непонятно объяснил, то приложу скрины. Как это можно исправить? Буду благодарен, если ответите.
Можно считать только нарисованные овалы:
Python:
count = 0


def f(e):
    global count   
    print(e.x, e.y)
    xk = e.x
    yk = e.y
    # не более 5 овалов
    if count < 5:
        if e.x > 400 and e.x < 1400 and e.y > 100 and e.y < 900:
            holst.create_oval(xk, yk, xk + 40, yk + 40, fill="gray", tag="fig")
            count += 1     

holst.bind('<Button-1>', f)
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Когда задаете вопрос желательно прикладывать к нему код который можно запустить, чтобы отвечающий не тратил время на дописывание недостающих частей программы.
Ограничить количество овалов можно например добавлением переменной счетчика и условием:
Python:
count = 0


def f(e):
    global count
    count += 1
    print(e.x, e.y)
    xk = e.x
    yk = e.y
    # не более 5 овалов
    if count <= 5:
        if e.x > 400 and e.x < 1400 and e.y > 100 and e.y < 900:
            holst.create_oval(xk, yk, xk + 40, yk + 40, fill="gray", tag="fig")
       

holst.bind('<Button-1>', f)
 
  • Мне нравится
Реакции: dfdf

dfdf

Новичок
Пользователь
Май 17, 2020
2
0
1
Когда задаете вопрос желательно прикладывать к нему код который можно запустить, чтобы отвечающий не тратил время на дописывание недостающих частей программы.
Ограничить количество овалов можно например добавлением переменной счетчика и условием:
Python:
count = 0


def f(e):
    global count
    count += 1
    print(e.x, e.y)
    xk = e.x
    yk = e.y
    # не более 5 овалов
    if count <= 5:
        if e.x > 400 and e.x < 1400 and e.y > 100 and e.y < 900:
            holst.create_oval(xk, yk, xk + 40, yk + 40, fill="gray", tag="fig")
      

holst.bind('<Button-1>', f)
Здравствуйте! Спасибо за ответ! Но теперь возник такой вопрос. У меня введены ограничения на область рисования. Когда тыкаешь на то место, где НЕ должен рисоваться овал, он естественно не рисуется. Но! после этого, теперь, в области, где овал должен возникать, он рисуется только оставшиеся 4 раза. Если непонятно объяснил, то приложу скрины. Как это можно исправить? Буду благодарен, если ответите.
 

Вложения

  • 2020-05-18_21-40-24.png
    2020-05-18_21-40-24.png
    11,3 КБ · Просмотры: 1
  • 2020-05-18_21-41-15.png
    2020-05-18_21-41-15.png
    14,6 КБ · Просмотры: 1

Форум IT Специалистов