Как можно сократить код приложения?

from tkinter import *


a=10

def klik():
    global ohki1
    global a
    global knopka
    global knopka1
    knopka.destroy()
    knopka1.destroy()
    ohki1.destroy()
    a=a+1
    ohki1 = Label(window, text=a, font=("Arial Bold", 50))
    ohki1.grid(column=1, row=0)
    knopka = Button(window, text="-1 Размер", font=("Arial Bold", a), command=klik1)
    knopka.grid(column=1, row=1)

    knopka1 = Button(window, text="+1 Размер", font=("Arial Bold", a), command=klik)
    knopka1.grid(column=0, row=1)

def klik1():
    global ohki1
    global a
    global knopka
    global knopka1
    knopka.destroy()
    knopka1.destroy()
    ohki1.destroy()
    a=a-1
    ohki1 = Label(window, text=a, font=("Arial Bold", 50))
    ohki1.grid(column=1, row=0)
    knopka = Button(window, text="-1 Размер", font=("Arial Bold", a), command=klik1)
    knopka.grid(column=1, row=1)

    knopka1 = Button(window, text="+1 Размер", font=("Arial Bold", a), command=klik)
    knopka1.grid(column=0, row=1)

window = Tk()
window.geometry('1000x450')
window.title("изменение числа кнопкой")
obekt = Label(window, text="Размер--->", font=("Arial Bold", 50))
obekt.grid(column=0, row=0)
knopka = Button(window, text="-1 Размер", command=klik1)
knopka.grid(column=1, row=1)

knopka1 = Button(window, text="+1 Размер", font=("Arial Bold", a), command=klik)
knopka1.grid(column=0, row=1)
ohki1 = Label(window, text=a, font=("Arial Bold", 50))
ohki1.grid(column=1, row=0)

window.mainloop()



Ответы (3 шт):

Автор решения: gord1402
  1. Можно не удалять объекты, а изменять
  2. Можно оставить одну функцию
from tkinter import *

size = 10


def edit_size(modification):
    global size
    size += modification

    button.configure(font=("Arial Bold", size))
    button1.configure(font=("Arial Bold", size))

    size_box.configure(text=size)


window = Tk()
window.geometry('1000x450')
window.title("изменение числа кнопкой")
size_label = Label(window, text="Размер--->",
                   font=("Arial Bold", 50))
size_label.grid(column=0, row=0)


button = Button(window, text="-1 Размер",
                font=("Arial Bold", size),
                command=lambda: edit_size(-1))
button.grid(column=1, row=1)


button1 = Button(window, text="+1 Размер",
                 font=("Arial Bold", size),
                 command=lambda: edit_size(1))
button1.grid(column=0, row=1)


size_box = Label(window, text=size, font=("Arial Bold", 50))
size_box.grid(column=1, row=0)

window.mainloop()
→ Ссылка
Автор решения: S. Nick

Как вариант.
Обратите внимание, что я поставил некоторые ограничения на свое усмотрение.

from tkinter import *
import tkinter.font as font


class MyFrame(Frame):
    def __init__(self, parent=None ):
        Frame.__init__(self, parent)
        
        self.number = 10

        self.obekt = Label(self, text="Размер ─>", font=("Arial Bold", 50))
        self.obekt.grid(column=0, row=0)

        self.knopka = Button(self, text="-1 Размер", 
            command=lambda val=-1: self.klik(val))
        self.knopka.grid(column=1, row=1)

        self.knopka1 = Button(self, text="+1 Размер", font=("Arial Bold", self.number), 
            command=lambda val=1: self.klik(val))
        self.knopka1.grid(column=0, row=1)

        self.ohki1 = Label(self, text=self.number, font=("Arial Bold", 50))
        self.ohki1.grid(column=1, row=0)   

    def klik(self, value):    
        self.number += value
        if self.number == 61 or self.number == 2:
            self.number -= value
            return
        myFont = font.Font(family='Arial Bold', size=self.number+5)
        self.ohki1.configure(text=f'{self.number}')
        self.knopka['font'] = myFont
        self.knopka1['font'] = myFont


root = Tk()
root.geometry('1000x450')
root.title("изменение числа кнопкой") 
w = MyFrame(root) 
w.pack()
root.mainloop()

введите сюда описание изображения

→ Ссылка
Автор решения: Euaek
from tkinter import *

a = 10

def change_size(amount):
    global a, label, decrease_button, increase_button
    a += amount
    label.config(text=a, font=("Arial Bold", 50))
    decrease_button.config(font=("Arial Bold", a), command=lambda: change_size(-1))
    increase_button.config(font=("Arial Bold", a), command=lambda: change_size(1))

window = Tk()
window.geometry('1000x450')
window.title("Изменение числа кнопкой")

label = Label(window, text=a, font=("Arial Bold", 50)
label.grid(column=1, row=0)

decrease_button = Button(window, text="-1 Размер", command=lambda: change_size(-1))
decrease_button.grid(column=1, row=1)

increase_button = Button(window, text="+1 Размер", font=("Arial Bold", a), command=lambda: change_size(1))
increase_button.grid(column=0, row=1)

window.mainloop()
→ Ссылка