Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Удаление текста с Canvas с помощью кнопки [RSS Feed]

#1 Дек. 3, 2017 19:27:45

nickin
Зарегистрирован: 2017-11-29
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление текста с Canvas с помощью кнопки

Там же где и создаётся c.create_text он удаляет, а надо сделать так, чтобы при нажатии на кнопку RestartButton он удалял WinBlue или WinRed(c.create_text)


 def ButtonStartEnd():
    global PLAYER_1_SCORE, PLAYER_2_SCORE
    
    RestartButton.place(relx=.5, rely=.5)
    ExitButton.place(relx=.5, rely=.6)
    
    PLAYER_1_SCORE = -1
    PLAYER_2_SCORE = -1
    
def restartButton():
    global PLAYER_1_SCORE, PLAYER_2_SCORE, WinRed, WinBlue
    
    PLAYER_1_SCORE = -1
    PLAYER_2_SCORE = -1
    
    RestartButton.place(relx=-.1, rely=-.1)
    ExitButton.place(relx=-.1, rely=-.1)
    
    c.delete(WinRed) 
    c.delete(WinBlue)
    
def winGame():
    global PLAYER_1_SCORE, PLAYER_2_SCORE
    
    if(PLAYER_1_SCORE == 7):
            WinBlue = c.create_text(WIDTH-WIDTH/2, PAD_H*1,
                        text="Победил синий",
                        font="Tahoma 72",
                        fill="blue")
            ButtonStartEnd()
    elif(PLAYER_2_SCORE == 7):
            WinRed = c.create_text(WIDTH-WIDTH/2, PAD_H*1,
                         text="Победил красный",
                         font="Tahoma 72",
                         fill="red")
            ButtonStartEnd()
root = Tk()
c = Canvas(root, width=WIDTH, height=HEIGHT, background="#00AA00")
c.pack()
# Кнопка рестарт
RestartButton = Button(text="Заново", font='Tahoma', command=restartButton)
RestartButton.place(relx=-.1, rely=-.1, anchor="c", height=40, width=200, bordermode=OUTSIDE)

Прикреплённый файлы:
attachment PPtest.rar (3,0 KБ)

Офлайн

#2 Дек. 4, 2017 11:14:06

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Удаление текста с Canvas с помощью кнопки

nickin
надо сделать так, чтобы при нажатии на кнопку RestartButton он удалял WinBlue или WinRed(c.create_text)
ну вот у вас есть такие строчки:
     c.delete(WinRed) 
    c.delete(WinBlue)
WinRed и WinBlue у вас равно '', что по вашему оно должно удалить?
по идее они должны содержать хендлы на элемент канваса, но в winGame() хендлы свззываються с локальными переменными WinBlue или WinRed, которые живут только пока выполняется функция.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Дек. 4, 2017 11:14:37)

Офлайн

  • Начало
  • » GUI
  • » Удаление текста с Canvas с помощью кнопки[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version