Найти - Пользователи
Полная версия: paint в python {нужна помощь}
Начало » Python для новичков » paint в python {нужна помощь}
1 2 3 4
InFocus
4kpt_IV
Т.е. нажатие на кнопки должны менять режим, а не рисовать. Аллелуйя. Теперь делаем следующее. Задаем переменную режима. При переключении на кнопку значение в ней должно меняться. При рисовании выбираем тот режим, который находится в этой переменной.

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

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

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

 #
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()

Подумайте над тем, что я здесь написал и прокомментируйте код. Ну и код нужно оборачивать в теги, а не прикладывать в файле.
InFocus
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
4kpt_IV
А что мешает вставить код и проверить? Заменить часть своего кода.
4kpt_IV
Хорошо. Давайте проще. Добавьте в Ваш код кнопку. При нажатии на нее цвет фона меняется на черный.
Жду результата.
InFocus
4kpt_IV
А что мешает вставить код и проверить? Заменить часть своего кода.

то, что он не хочет работать, режимы то меняет, а в деле нифига.
InFocus
InFocus
InFocus
4kpt_IV
ще. Добавьте в Ваш код кн
 def fill(event):
    drawing_area.configure(background="black")
but1=Button(win,text="fill")
but1.bind("<Button-1>",fill)
but1.pack()
4kpt_IV
У Вас там все неправильно. И отступы и вообще все почти…
Вставляйте код в теги code. Иначе ничего понять нельзя.
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