@20Amir05

Как сделать команды на кнопки в Python?

Как сделать чтоб при нажати на кнопки "-10" и "+10" в label выводились значения и складывались
from tkinter import *

root = Tk()
root.title("Управление станком")
root.geometry("700x400")
root.resizable(False, False)
clicks = 0
i = 0

def click_button(text):
    label.config(text="Button {}".format(text))





btn = Button(text="+10",  # текст кнопки
             background="#555",  # фоновый цвет кнопки
             foreground="#ccc",  # цвет текста
             padx="60",  # отступ от границ до содержимого по горизонтали
             pady="24",  # отступ от границ до содержимого по вертикали
             font="16",  # высота шрифта
             command=click_button,
             label=Label(text=i + 10,
                         fg="red",
                         pady="24",
                         padx="60"
                         ).place(x=250, y=150)
             ).place(x=70, y=60 )


btn2 = Button(text="-10",  # текст кнопки
             background="#555",  # фоновый цвет кнопки
             foreground="#ccc",  # цвет текста
             padx="60",  # отступ от границ до содержимого по горизонтали
             pady="24",  # отступ от границ до содержимого по вертикали
             font="16",  # высота шрифта
             command= 'i - 10',
             label = Label(text= i - 10,
                             fg="red",
                             pady="24",
                             padx="60"
                            ).place(x=250, y=150 )
             ).place(x=70, y=240 )


btn3 = Button(text="Ввод",  # текст кнопки
             background="#555",  # фоновый цвет кнопки
             foreground="#ccc",  # цвет текста
             padx="60",  # отступ от границ до содержимого по горизонтали
             pady="24",  # отступ от границ до содержимого по вертикали
             font="16",  # высота шрифта
             command=click_button,
             ).place(x=500, y=150 )


#label.grid(row=1,
          # column=1)


root.mainloop()
  • Вопрос задан
  • 9088 просмотров
Пригласить эксперта
Ответы на вопрос 1
sanya84
@sanya84
Фанатик Python 3
Я вот так реализовал
В коде названия атрибутов и методов говорят сами за себя
Добавлю что так можно на одну функцию вешать несколько кнопок при помощи partial
from tkinter import Tk, Button, Label, LabelFrame, mainloop
from functools import partial


SIGNAL = int

class App(Tk):
    normal_engine_speed = 1500
    def __init__(self):
        super().__init__()
        self.interface()

    def interface(self):
        self.title("Управление станком")
        self["bg"] = "gray22"
        self.geometry("300x150+500+300")
        self.resizable(False, False)

        title_label = Label(self, text="Обороты двигателя")
        title_label.config(font="Times 18 bold", fg="green")
        title_label.place(x=40)

        button_reduce_speed = Button(self, text="-10")
        button_reduce_speed.config(font="Times 13 bold", fg="blue")
        button_reduce_speed.bind('<Button-1>', partial(self.button_click_handler, 0))
        button_reduce_speed.place(x=0, y=0)

        button_add_speed = Button(self, text="+10")
        button_add_speed.config(font="Times 13 bold", fg="blue")
        button_add_speed.bind('<Button-1>', partial(self.button_click_handler, 1))
        button_add_speed.place(x=261, y=0)

        self.show_engine_speed = Label(self, text=self.normal_engine_speed)
        self.show_engine_speed.config(font="Times 30 bold", bg="black", fg="green")
        self.show_engine_speed.config(width=13, height=2)
        self.show_engine_speed.place(y=40)

    def button_click_handler(self, SIGNAL, event):
        if SIGNAL == 0:
            self.normal_engine_speed -= 10
        elif SIGNAL == 1:
            self.normal_engine_speed += 10
        self.show_engine_speed["text"] = self.normal_engine_speed


if __name__ == "__main__":
    app = App()
    app.mainloop()
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы