Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 31, 2017 21:04:12

InFocus
Зарегистрирован: 2017-01-31
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

paint в python {нужна помощь}

4kpt_IV
Т.е. нажатие на кнопки должны менять режим, а не рисовать. Аллелуйя. Теперь делаем следующее. Задаем переменную режима. При переключении на кнопку значение в ней должно меняться. При рисовании выбираем тот режим, который находится в этой переменной.

Каким способом можно узнать значение при переключении на кнопку ?
Знаю только с radiobutton, спасибо за помощь )

P.S недавно начал изучать программирование, не психовать

Офлайн

#2 Янв. 31, 2017 21:10:11

InFocus
Зарегистрирован: 2017-01-31
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

paint в python {нужна помощь}

4kpt_IV
Т.е. нажатие на кнопки должны менять режим, а не рисовать. Аллелуйя. Теперь делаем следующее. Задаем переменную режима. При переключении на кнопку значение в ней должно меняться. При рисовании выбираем тот режим, который находится в этой переменной.

таким способом ничего не изменилось

Прикреплённый файлы:
attachment Screen Shot 2017-01-31 at 21.09.34.png (27,6 KБ)

Офлайн

#3 Янв. 31, 2017 21:21:20

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

paint в python {нужна помощь}

Тааааак. Смотрите. Где у Вас происходит процесс рисования?
Какие события его вызывают?

 #
type_ = "polygon"
#
def change_style_to(event):
    global type_
    type_ = event.widget["text"]
    print("type_ is changed on: {}".format(type_))
#
def draw(event):
    global type_
    global toolsThickness
    #
    method = {
        "polygon": event.widget.create_polygon,
        "oval": event.widget.create_oval,
    }[type_]
    #
    if b1 == "down":
        global xold, yold
        if xold is not None and yold is not None:
            method(xold,
                                   yold,
                                     event.x,
                                     event.y,
                                     width = toolsThickness,
                                        outline="black")
#
but1=Button(win3,text="oval")
but1.bind("<Button-1>", change_style_to)
but1.pack()
#
but2=Button(win3,text="polygon")
but2.bind("<Button-1>", change_style_to)
but2.pack()
#
drawing_area = Canvas(win,bg="white",width=600,height=400)
drawing_area.bind("<Motion>", motion)
drawing_area.bind("<ButtonPress-1>", b1down)
drawing_area.bind("<ButtonRelease-1>", b1up)
drawing_area.pack()

Подумайте над тем, что я здесь написал и прокомментируйте код. Ну и код нужно оборачивать в теги, а не прикладывать в файле.

Отредактировано 4kpt_IV (Янв. 31, 2017 21:22:49)

Офлайн

#4 Янв. 31, 2017 21:39:30

InFocus
Зарегистрирован: 2017-01-31
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

paint в python {нужна помощь}

4kpt_IV
Тааааак. Смотрите. Где у Вас происходит процесс рисования?Какие события его вызывают?

4kpt_IV
drawing_area = Canvas(win,bg=“white”,width=600,height=400)
drawing_area.bind(“<Motion>”, motion)
drawing_area.bind(“<ButtonPress-1>”, b1down)
drawing_area.bind(“<ButtonRelease-1>”, b1up)
drawing_area.pack()

мне не разобрать, я сдаюсь.
Я только одно понял, что код при нажатии кнопок меняет стиль который был выбран из списка.
Никогда не встречал на подобии такого сложного кода и разобраться в нем не простая работа для меня.
Пробовал тестить, в shelle-е все хорошо, пишет как надо, но вот сам режим не меняет.

Cобытие рисование вызывается

method(xold,
yold,
event.x,
event.y,
width = toolsThickness,
outline=“black”)

и motion

Отредактировано InFocus (Янв. 31, 2017 21:51:09)

Офлайн

#5 Янв. 31, 2017 21:53:56

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

paint в python {нужна помощь}

А что мешает вставить код и проверить? Заменить часть своего кода.

Офлайн

#6 Янв. 31, 2017 21:56:11

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

paint в python {нужна помощь}

Хорошо. Давайте проще. Добавьте в Ваш код кнопку. При нажатии на нее цвет фона меняется на черный.
Жду результата.

Офлайн

#7 Янв. 31, 2017 21:58:06

InFocus
Зарегистрирован: 2017-01-31
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

paint в python {нужна помощь}

4kpt_IV
А что мешает вставить код и проверить? Заменить часть своего кода.

то, что он не хочет работать, режимы то меняет, а в деле нифига.

Офлайн

#8 Янв. 31, 2017 21:59:39

InFocus
Зарегистрирован: 2017-01-31
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

paint в python {нужна помощь}

InFocus

Прикреплённый файлы:
attachment Screen Shot 2017-01-31 at 21.59.00.png (75,5 KБ)

Офлайн

#9 Янв. 31, 2017 22:10:45

InFocus
Зарегистрирован: 2017-01-31
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

paint в python {нужна помощь}

4kpt_IV
ще. Добавьте в Ваш код кн
 def fill(event):
    drawing_area.configure(background="black")
but1=Button(win,text="fill")
but1.bind("<Button-1>",fill)
but1.pack()

Офлайн

#10 Янв. 31, 2017 22:11:12

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

paint в python {нужна помощь}

У Вас там все неправильно. И отступы и вообще все почти…
Вставляйте код в теги code. Иначе ничего понять нельзя.

Прикреплённый файлы:
attachment 1.png (229,7 KБ)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version