@dddedd

Как сделать так, чтобы программа читала мой код?

Хочу сделать программу на tkinter, в которой когда нажимаешь на кнопку, она удаляется и появляется новая в случайной точке. Также сделал счетчик нажатых кнопок, и когда счетчик доходит до десяти цвет окна и кнопки должен меняться, но этого не происходит, программа просто игнорирует условие.
import tkinter as tk
from tkinter import *
import random as rd
root = Tk()
root.title('Buttons')
root.geometry('800x600')
root['bg'] = 'salmon'
count = 0
def clicked():
	global count
	count += 1
	lbl.configure(text = count)
def destroy():
	btn.destroy()
def destroy2():
	btn1.destroy()
def newbtn():
	global btn1
	btn1 = Button(root, text = 'najmi', font = 'Roboto 35', bg = 'cyan', padx = '40', pady = '20', command = lambda: [destroy2(), newbtn(), clicked()])
	btn1.place(x = rd.randint(0,572), y = rd.randint(0,470))
lbl = Label(root, text = '0', font = 'Arial 35', bg = 'salmon', fg = 'maroon')
lbl.place(x = 0, y = 0)
btn = Button(root, text = 'najmi', font = 'Roboto 35', bg = 'cyan', padx = '40', pady = '20', command = lambda: [destroy(), newbtn(), clicked()])
btn.pack()
if count >= 10:
	btn.configure(bg = 'coral1')
	root.configure(bg = 'purple')
	btn1.configure(bg = 'coral1')
root.mainloop()
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 2
@kisaa
Программа его не игнорирует, она его выполняет как написано. Написано - один раз, после создания первой кнопки, перед циклом событий, когда count==0, так и выполняет.
Хотите, чтобы выполняла при каждом клике - так переместите условие и действия в процедуру обработки клика.
Ответ написан
Комментировать
@Ledauph1
Я только учусь, не пинайте строго.
Вот ВАШ, исправленный рабочий код, но вообще такой код, очень плох... Начиная с импортов, и заканчивая отсутствием PEP8 !

import tkinter as tk
from tkinter import *
import random as rd
root = Tk()
root.title('Buttons')
root.geometry('800x600')
root['bg'] = 'salmon'
count = 0
def clicked():
  global count
  count += 1
  print(count)
  set_config()
  lbl.configure(text = count)
def destroy():
  btn.destroy()
def destroy2():
  btn1.destroy()
def newbtn():
  global btn1
  btn1 = Button(root, text = 'najmi', font = 'Roboto 35', bg = 'cyan', padx = '40', pady = '20', command = lambda: [destroy2(), newbtn(), clicked()])
  btn1.place(x = rd.randint(0,572), y = rd.randint(0,470))
lbl = Label(root, text = '0', font = 'Arial 35', bg = 'salmon', fg = 'maroon')
lbl.place(x = 0, y = 0)
btn = Button(root, text = 'najmi', font = 'Roboto 35', bg = 'cyan', padx = '40', pady = '20', command = lambda: [destroy(), newbtn(), clicked()])
btn.pack()

def set_config():
    if count >= 10:
        # btn.configure(bg = 'coral1')
        root.configure(bg = 'purple')
        btn1.configure(bg = 'coral1')
root.mainloop()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы