Как можно сократить код приложения?
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
→ Ссылка
- Можно не удалять объекты, а изменять
- Можно оставить одну функцию
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()
