Создание GUI приложения Python tkinter. Создаем калькулятор на tkinter

Поделиться
HTML-код
  • Опубликовано: 30 сен 2024
  • Стать спонсором канала и получить доступ к дополнительным материалам по Python
    / @egoroffchannel
    boosty.to/egor...
    / artem_egorov
    stepik.org/cou...
    Курс по основам python на Степике
    stepik.org/cou...
    Записывайся на курс на Stepic по ООП, где найдешь много практических задач
    Ссылка на урок
    egoroffartem.py...
    При помощи библиотеки tkinter можно создать свои десктопные графические приложения на python. Мы изучим все основные виджеты, которые применяются в формах и создадим на их основе такие проекты как Калькулятор, Paint, Сапер, Блокнот
    Калькулятор на Python при помощи библиотеки tkinter
    Все видео этого курса можете найти на сайте
    egoroffartem.py...
    или в Вк
    videos-...
    Если кому нужна помощь, предлагаю индивидуальные занятия. Подробнее пишите в личку в вк
    artem_e...
    python....
    В данном группе можете найти информацию о новых видео и задать вопросы

Комментарии • 127

  • @damirchpok7570
    @damirchpok7570 Год назад +3

    У меня почему то insert - ошибка, кто знает почему это может быть?

  • @Milanchik.
    @Milanchik. 5 месяцев назад +5

    Препод по программированию часто пропускает занятия, а лабораторные нам как-то сдавать нужно) ты мой спаситель😂🔥

  • @АнтонНазарук-щ5с
    @АнтонНазарук-щ5с 2 года назад +39

    9:00 - функцию add_digit, что бы значения добавлялись с конца можно написать проще:
    def add_digit(digit):
    calc.insert("end",digit)
    С использованием "end" как места вставки первого символа
    П.С. Очень хорошие уроки, благодарю Вас

    • @jdjLoUzjzosh
      @jdjLoUzjzosh 2 года назад +1

      спасибо

    • @даниилпавленко-ъ2з
      @даниилпавленко-ъ2з 2 года назад +2

      Тоже так сразу сделал. Это ж на сколько упрощает функцию. Только вместо "end" можно просто END, как-то понятней выглядит

    • @Trezvy_Papa
      @Trezvy_Papa Год назад +1

      cifra1 = tk.Button(text='1', command=lambda: asd.insert(tk.END, '1')
      Таким образом записывал все цифры и знаки.

    • @user22335
      @user22335 Год назад

      Чел спасибо долго мучился не мог понять почему не работает как надо спас просто

    • @Лаутив
      @Лаутив Год назад

      Мое уважение

  • @hdrhighdigitalrap5474
    @hdrhighdigitalrap5474 2 года назад +12

    Клаааасс, какое же удовольствие!
    отдельное спасибо за озвучивание горячих клавиш! наконец-то хоть кто-то это делает, это очень полезно и как мёдик ложится на процесс обучения, спасибо!!!!!!

  • @malf9671
    @malf9671 2 года назад +9

    Это так легко, что даже мотивирует меня наконец-то уже начать заниматься программированием
    Ps. Реально замотивировался уже больше года учу python, из-за знаний в программировании круто вывез егэ потому что набрал по инфе 85 и вообще жизнь хорошо сложилась потому что посмотрел этот ролик

  • @Александр-д8ы6л
    @Александр-д8ы6л Год назад +2

    привет из 2023, написал эту бурду в chatgpt за 15 минут вместе с дизайном и доп.функциями

    • @ЭмметтБраун-у3т
      @ЭмметтБраун-у3т 11 месяцев назад

      И зачем надо было говорить это?

    • @maksfanvashchenko2533
      @maksfanvashchenko2533 6 месяцев назад

      И смысл
      Ты научился от этого программированию
      Если нет то смысл вообще создавать программы если тебе это не надо

  • @Ланселот-ш2в
    @Ланселот-ш2в 4 года назад +14

    Было бы интересно увидеть приложение, сравнивающее 2 pdf файла и выделяющее различия между ними

    • @Tetyam18
      @Tetyam18 Год назад

      Tkinter вроде работает только с пнг файлами

    • @barinvic
      @barinvic Год назад

      так на Python можно написать...

  • @damirchpok7570
    @damirchpok7570 Год назад +3

    from tkinter import *
    def fun(s):
    entry.insert(0,s)
    root=Tk()
    root.geometry('400x400')
    entry = Entry(root).grid(row=0, column=0)
    bt=Button(root,command= lambda : fun(5)).grid(row=1, column=1)
    root.mainloop()
    В чем тут ошибка?
    Показывает, что то не так с insert

    • @damirchpok7570
      @damirchpok7570 Год назад

      Проблема была решена тем что я отдельно написал entry.grid(0,0)
      Но почему это так кто нибудь может объяснить???

    • @nektosnext
      @nektosnext Год назад

      @@damirchpok7570 хуй его знает сам по рофлу так сделал может помотже и помогло

    • @HackerWhite4521
      @HackerWhite4521 10 дней назад

      @@nektosnext нет так у Автор так код не работает! в python этот метод кода убрали!
      надо уже не так совсем по другому Вводить код!!

    • @HackerWhite4521
      @HackerWhite4521 10 дней назад

      @@nektosnext с помощью eval и не from tkinter а просто import tkinter!

  • @КириллКириллович
    @КириллКириллович 4 года назад +19

    большое спасибо за уроки по tkinter!

  • @ВадимАкст-ы1р
    @ВадимАкст-ы1р Год назад +2

    Отдельное спасибо за ДЕТАЛЬНЫЙ разбор;)

  • @markpantuszev3805
    @markpantuszev3805 Год назад +1

    Здравствуйте. Допустим, что есть уже поле Entry, куда можно вводить какие-то числа. Как сделать так, чтобы при открытии окна в поле Entry сразу был 0, который можно заменить любой цифрой, но нельзя стереть?

  • @andreylebedev4078
    @andreylebedev4078 3 года назад +9

    А не проще так?
    def add_digits(digit):
    calc.insert('end', digit)

    • @mayurko_5216
      @mayurko_5216 3 года назад +1

      Да, можно и так. Вообще можно не создавать отдельную функцию для одной команды, а написать *command= lambda : calc.insert('end', 0)* Вместо 0 любая цифра

  • @TheBeatStreet0
    @TheBeatStreet0 Год назад +1

    спасибо давно не мог понять у тя всё понятно и интересно)!Желаю удачи в ютубе

  • @illyastt
    @illyastt 3 года назад +1

    Помоги! Я скачал такую же програму как у тебя, PyCharm! И когда я запускаю
    from tkinter import *
    tk = Tk()
    canvas = Canvas(tk, width=500, height=500)
    canvas.pack()
    то у меня неоткрывается ничего,
    проспо пишет
    Process finished with exit code 0
    в консоле

    • @yaditrc
      @yaditrc 3 года назад +5

      tk.mainloop() - допиши в конце программы

  • @oks_yerm
    @oks_yerm 4 месяца назад

    Як добавити кнопку корінь??????

  • @yayoi386
    @yayoi386 4 года назад +9

    А разве, чтобы цифра добавлялась в конец не надо в инсерте первым параметром задать END?

    • @sagi_abd
      @sagi_abd 3 года назад

      это не текст это энтри

    • @даниилпавленко-ъ2з
      @даниилпавленко-ъ2з 2 года назад +1

      @Serrr оно и так работает. Просто начальное зачение END и всё, добавляет в конец существующей строки

    • @Vasiliy_Pupkin
      @Vasiliy_Pupkin Год назад

      Вот я тоже об этом задумался. Автор же себе жизнь усложняет

  • @veliky_brawl5602
    @veliky_brawl5602 3 года назад +4

    from tkinter import *
    from tkinter import messagebox
    import time
    window=Tk()
    window.geometry('600x400')
    window.title('Calculator')
    window.maxsize(318, 334)
    password = Entry(width=20,justify=RIGHT,font=('Arial',14))
    password.grid(column=0,row=0,columnspan=20,stick='we')
    frame = Label(password,text = 'Error',fg='red',width=10,font=('Arial',17))
    def add_digit(digit):
    value = password.get() + str(digit)
    if value[0]=='0':
    value=value[1:]
    password.delete(0, END)
    password.insert(0, value)
    if digit == c:
    password.delete(0, END)
    add_rotate()
    def add_rotate():
    if len(password.get()) == 10:
    frame.grid()
    password.delete(0, END)
    def one_ce():
    try:
    solution = eval(password.get())
    messagebox.showinfo('Готово!',f'Решение найдено: {solution}')
    except NameError:
    messagebox.showerror('Ошибка!','Что-то написано не правильно')
    except SyntaxError:
    messagebox.showwarning('Внимание!','Вы что-то пропустили')
    except ZeroDivisionError:
    messagebox.showwarning('Внимание!','Деление на ноль!')
    button0 = Button(text='0',bd=5,width=7,height=3,fg='orange',bg='grey',font=('Arial',13),anchor='center',command=lambda: add_digit(0))
    button0.grid(column=0,row=4)
    button1 = Button(text='1',bd=5,width=7,height=3,fg='orange',bg='grey',font=('Arial',13),anchor='center',command=lambda: add_digit(1))
    button1.grid(column=0,row=3)
    button4= Button(text='4',bd=5,width=7,height=3,fg='orange',bg='grey',font=('Arial',13),anchor='center',command=lambda: add_digit(4))
    button4.grid(column=0,row=2)
    button7 = Button(text='7',bd=5,width=7,height=3,fg='orange',bg='grey',font=('Arial',13),anchor='center',command=lambda: add_digit(7))
    button7.grid(column=0,row=1)
    button2= Button(text='2',bd=5,width=7,height=3,fg='orange',bg='grey',font=('Arial',13),anchor='center',command=lambda: add_digit(2))
    button2.grid(column=1,row=3)
    button5 = Button(text='5',bd=5,width=7,height=3,fg='orange',bg='grey',font=('Arial',13),anchor='center',command=lambda: add_digit(5))
    button5.grid(column=1,row=2)
    button8 = Button(text='8',bd=5,width=7,height=3,fg='orange',bg='grey',font=('Arial',13),anchor='center',command=lambda: add_digit(8))
    button8.grid(column=1,row=1)
    ravno = Button(text='=',bd=5,width=7,height=3,fg='orange',bg='grey',font=('Arial',13),anchor='center',command=one_ce)
    ravno.grid(column=1,row=4)
    button3 = Button(text='3',bd=5,width=7,height=3,fg='orange',bg='grey',font=('Arial',13),anchor='center',command=lambda: add_digit(3))
    button3.grid(column=2,row=3)
    button6 = Button(text='6',bd=5,width=7,height=3,fg='orange',bg='grey',font=('Arial',13),anchor='center',command=lambda: add_digit(6))
    button6.grid(column=2,row=2)
    button9 = Button(text='9',bd=5,width=7,height=3,fg='orange',bg='grey',font=('Arial',13),anchor='center',command=lambda: add_digit(9))
    button9.grid(column=2,row=1)
    c = Button(text='C',bd=5,width=7,height=3,fg='orange',bg='grey',font=('Arial',13),anchor='center',command=lambda: add_digit(c))
    c.grid(column=2,row=4)
    plus = Button(text='+',bd=5,width=7,height=3,fg='orange',bg='grey',font=('Arial',13),anchor='center',command=lambda: add_digit('+'))
    plus.grid(column=3,row=1)
    minuse = Button(text='-',bd=5,width=7,height=3,fg='orange',bg='grey',font=('Arial',13),anchor='center',command=lambda: add_digit('-'))
    minuse.grid(column=3,row=2)
    podelit = Button(text='/',bd=5,width=7,height=3,fg='orange',bg='grey',font=('Arial',13),anchor='center',command=lambda: add_digit('/'))
    podelit.grid(column=3,row=3)
    umnozit = Button(text='*',bd=5,width=7,height=3,fg='orange',bg='grey',font=('Arial',13),anchor='center',command=lambda: add_digit('*'))
    umnozit.grid(column=3,row=4)
    еще так можно сделать...

    • @veliky_brawl5602
      @veliky_brawl5602 3 года назад

      ну я только переменные по другому назвал.

    • @sy_of
      @sy_of 2 года назад

      А можешь так же, только инженерный калькулятор сделать?

    • @ПОЗИТИВНЫЙЧУВАК-й2ц
      @ПОЗИТИВНЫЙЧУВАК-й2ц 2 года назад

      у меня он не запускается

  • @damirmagassumov
    @damirmagassumov Год назад

    Я правильно понимаю, что у меня интерфейс и кнопки выглядят по ублюдски и совсем не так как у автора из-за того, что я на маке работаю?

    • @HackerWhite4521
      @HackerWhite4521 10 дней назад

      нет так у Автор так код не работает! в python этот метод кода убрали!
      надо уже не так совсем по другому Вводить код!!

  • @АйшаТажибахыт
    @АйшаТажибахыт Год назад

    Сорри а где +,-,//?

  • @vladimirleontiev8867
    @vladimirleontiev8867 3 года назад +2

    А нельзя ли сделать кнопки через цикл? Ведь дзен говорит не повторяться

    • @mayurko_5216
      @mayurko_5216 3 года назад

      Можно, но работать кнопки не будут, вернее будут, но неправильно, я проверяла. Либо я не нашла способ это исправить

    • @vladimirleontiev8867
      @vladimirleontiev8867 3 года назад

      @@mayurko_5216 я уже не помню сути, но вроде я делал так как указал в комментарие

    • @mayurko_5216
      @mayurko_5216 3 года назад

      @@vladimirleontiev8867 Значит всё-таки можно)

  • @lucil4_4
    @lucil4_4 3 года назад +1

    В самом начале видоса есть строка в коде: win['bg'] = '#33ffe6'. Я не очень понимаю как мы можем так обращаться как к словарю? Мы же в первом уроке прописывали для смены фона мы прописывали wim.config(bg='red'), а тут сразу как к словарю обращаемся. Пожалуйста объясните, если не сложно

    • @mayurko_5216
      @mayurko_5216 3 года назад +1

      Наверно есть два способа

    • @ТихонКотов-д9з
      @ТихонКотов-д9з Год назад +2

      это фишка ооп. win это объект, к его атрибутам можно обратиться при помощи методов словаря

  • @arnoldvelichko9754
    @arnoldvelichko9754 Год назад

    tkinter очень простая библиотека, изучение дается очень легко и радует, что получаются невероятные вещи для актуального уровня знаний

  • @mrandmss2084
    @mrandmss2084 4 года назад +9

    можно готовый код? очень надо

    • @voiflois
      @voiflois 3 года назад +5

      @endy cat причем тут это? рассмотреть код нужно чтобы понять принцип работы каждой строчки мне это тоже нужно я незнаю как сделать чтобы когда окно растягиваешь кнопки на месте не оставались

    • @netfrost.official2286
      @netfrost.official2286 Год назад +3

      import tkinter as tk
      from tkinter import messagebox
      def add_digit(digit):
      value = calc.get()
      if value[0]=="0" and len(value):
      value = value[1:]
      calc.delete(0,tk.END)
      calc.insert(0,value+digit)
      def add_operation(operation):
      value = calc.get()
      if value[-1] in "+-*/":
      value = value[:-1]
      elif "+" in value or "-" in value or "*" in value or "/" in value:
      calculate()
      value = calc.get()
      calc.delete(0, tk.END)
      calc.insert(0, value+operation)
      def calculate():
      value = calc.get()
      if value[-1] in "+-*/":
      value = value+value[:-1]
      calc.delete(0, tk.END)
      try:
      calc.insert(0, eval(value))
      except (NameError,SyntaxError):
      messagebox.showinfo("ошибка","вы ввели другие символы")
      calc.insert(0, 0)
      except ZeroDivisionError:
      messagebox.showinfo("ошибка", "на ноль делить нельзя")
      calc.insert(0, 0)
      def clear():
      calc.delete(0, tk.END)
      calc.insert(0,0)
      def make_digit_button(digit):
      return tk.Button(text=digit, bd=5, font=("Unispace",13), command=lambda : add_digit(digit))
      def make_operation_button(operation):
      return tk.Button(text=operation, bd=5, font=("Unispace",13), fg="blue",
      command=lambda : add_operation(operation))
      def make_calc_button(operation):
      return tk.Button(text=operation, bd=5, font=("Unispace",13), fg="blue",
      command=calculate)
      def make_clear_button(operation):
      return tk.Button(text=operation, bd=5, font=("Unispace",13), fg="blue",
      command=clear)
      def press_key(event):
      print(repr(event.char))
      if event.char.isdigit():
      add_digit(event.char)
      elif event.char in "+-*/":
      add_operation(event.char)
      elif event.char == "
      ":
      calculate()
      win = tk.Tk()
      win.geometry(f"275x290+100+200")
      win.resizable(width=False, height=False)
      win["bg"] = "#00c4fa"
      win.title("Калькулятор")
      win.bind("", press_key)
      calc = tk.Entry(win, justify=tk.RIGHT, bd=10, font=("Unispace",15))
      calc.insert(0, "0")
      calc.grid(row=0, column=0, columnspan=4, stick="we", padx=5)
      make_digit_button("1").grid(row=1, column=0, stick="wens",padx=5, pady=5)
      make_digit_button("2").grid(row=1, column=1, stick="wens",padx=5, pady=5)
      make_digit_button("3").grid(row=1, column=2, stick="wens",padx=5, pady=5)
      make_digit_button("4").grid(row=2, column=0, stick="wens",padx=5, pady=5)
      make_digit_button("5").grid(row=2, column=1, stick="wens",padx=5, pady=5)
      make_digit_button("6").grid(row=2, column=2, stick="wens",padx=5, pady=5)
      make_digit_button("7").grid(row=3, column=0, stick="wens",padx=5, pady=5)
      make_digit_button("8").grid(row=3, column=1, stick="wens",padx=5, pady=5)
      make_digit_button("9").grid(row=3, column=2, stick="wens",padx=5, pady=5)
      make_digit_button("0").grid(row=4, column=0, stick="wens",padx=5, pady=5)
      make_operation_button("+").grid(row=1, column=3, stick="wens",padx=5, pady=5)
      make_operation_button("-").grid(row=2, column=3, stick="wens",padx=5, pady=5)
      make_operation_button("*").grid(row=3, column=3, stick="wens",padx=5, pady=5)
      make_operation_button("/").grid(row=4, column=3, stick="wens",padx=5, pady=5)
      make_calc_button("=").grid(row=4, column=2, stick="wens",padx=5, pady=5)
      make_clear_button("C").grid(row=4, column=1, stick="wens",padx=5, pady=5)
      win.grid_columnconfigure(0,minsize=60)
      win.grid_columnconfigure(1,minsize=60)
      win.grid_columnconfigure(2,minsize=60)
      win.grid_columnconfigure(3,minsize=60)
      win.grid_rowconfigure(1,minsize=60)
      win.grid_rowconfigure(2,minsize=60)
      win.grid_rowconfigure(3,minsize=60)
      win.grid_rowconfigure(4,minsize=60)
      win.mainloop() надеюсь помог

    • @netfrost.official2286
      @netfrost.official2286 Год назад +1

      Код сам писал если что-то не так сорри

    • @xder4061
      @xder4061 Год назад

      ​@@netfrost.official2286 Гений через 2года ответил

    • @ornyyxxx2407
      @ornyyxxx2407 Год назад +1

      @@netfrost.official2286 спасибо , ты лучший

  • @MetamorphosisMetamorphosis-s
    @MetamorphosisMetamorphosis-s 4 года назад +1

    Бро, очень прошу запили видос как подключить Python 3.8 к Qt Designer? А то в ютубе есть только питон 3.6 Что б как у хауди Хо тут только версию питона 3.8 а не как у него 3.6.
    ruclips.net/video/cK-hvG-Q9B0/видео.html

    • @phat80
      @phat80 3 года назад +1

      Смотри дальше своего Хауди хо ))) Вообще голова перестанет работать.

    • @MetamorphosisMetamorphosis-s
      @MetamorphosisMetamorphosis-s 3 года назад

      @@phat80 я не только по Хауди с питоном знакомлюсь.

    • @naoki233
      @naoki233 2 года назад

      @@MetamorphosisMetamorphosis-s далеко продвинулись с хайди хо?

  • @tinlager2617
    @tinlager2617 2 года назад

    У меня почему то после 6 строки пишет ошибку

  • @andreykorenev2468
    @andreykorenev2468 Год назад

    Всем привет, я только не понял вот эту строчку функции:
    digit = calc.get() + str(value)
    Что она вооще делает? Заранее спасибо за ответ)

  • @so_nya
    @so_nya 3 года назад +2

    Спасибо огромное!

  • @kokpis4142
    @kokpis4142 Год назад

    я не понимаю почему у меня нету digit add_digit у меня какая-то ошибка

  • @madduck4484
    @madduck4484 Год назад

    Лан, извини

  • @lepdmitrijj
    @lepdmitrijj 3 года назад +1

    А как сделать сохранение последних 10 расчётов в калькуляторе?

    • @why-ej2xo
      @why-ej2xo 3 года назад

      хз,мб каждый в список засовывать, а потом доставать

    • @ДамирКрасильников-б5г
      @ДамирКрасильников-б5г 2 года назад +2

      @@why-ej2xo лучше через open(r'path/to/the/file.txt', a) записывать результат. Посмотрите функцию open, она позволяет сохранять любые файлы и использовать их вне программы

  • @SevaraIsroilova-bx8ph
    @SevaraIsroilova-bx8ph 6 месяцев назад

    Спасибо большое, что так хорошо объяснили:) 😊👍

  • @user-ce1qy6uf2d
    @user-ce1qy6uf2d 4 года назад +2

    Спасибо!

  • @ВВЗ
    @ВВЗ 3 года назад +13

    Спасибо за уроки, большая работа проделана и полезная для людей.

  • @aleksa_blackrussia
    @aleksa_blackrussia 2 года назад

    дайте пж ссылку на текст, у меня не работает калькулятор

  • @kutman.eshenkulov
    @kutman.eshenkulov 4 года назад

    Raskajy pro: Notebook, bind, Enter, Leave please

  • @maffn
    @maffn 11 месяцев назад

    Где взять вторую часть

  • @ivanloginov8605
    @ivanloginov8605 Год назад

    как сделать чтобы он делил без остатка

  • @qshhshsghsghsh
    @qshhshsghsghsh Год назад

    ответь на этот комментарий

  • @trenkov2390
    @trenkov2390 3 года назад

    к сожалению пишет что нет атрибута insert. В чём дело не понимаю(((

    • @phat80
      @phat80 3 года назад

      Может потому, что это не атрибут, а метод? Сигнатуру метода соблюли?

  • @whitehat-it-4096
    @whitehat-it-4096 3 года назад +1

    Реально круто

  • @jonydosh1189
    @jonydosh1189 Год назад

    подскажите пожалуйста как зафиксировать размер окна калькулятора ???

  • @СергейТрафимов-н3о
    @СергейТрафимов-н3о 3 года назад

    Что за программа в которой пишешь?

  • @moris-pocketcode5128
    @moris-pocketcode5128 3 года назад

    Делаю ролики для себя на своем канале

  • @Немножкоматематикинемногошахма

    А не проще вместо грид использовать place?

    • @nektosnext
      @nektosnext Год назад

      аьа какь щитать ни ровно жи будет

  • @спутникдели
    @спутникдели Год назад

    сделал по шагам всё до 51 секунды вместо калькулятора получил вот это File "C:\Python38-64\lib\tkinter\__init__.py", line 2035, in wm_geometry
    return self.tk.call('wm', 'geometry', self._w, newGeometry)
    _tkinter.TclError: bad geometry specifier "f 240*260 + 100 + 200"

    • @residenttt4190
      @residenttt4190 Год назад

      попробуй не ставить пробелы

    • @спутникдели
      @спутникдели Год назад

      @@residenttt4190 спасибо , но не помогло , правда сейчас другая ошибка unexpected EOF while parsing

  • @tehnobus
    @tehnobus 2 года назад

    не работает, grid

  • @muhammadislom7207
    @muhammadislom7207 4 года назад +1

    Спасибо большое.

  • @firuzhasanov4504
    @firuzhasanov4504 2 года назад

    'value' eto chto

  • @ВаняДэджопович
    @ВаняДэджопович 3 года назад

    А чере з
    Что ты кодптшещ

  • @sindrom_vosmiclassnika
    @sindrom_vosmiclassnika 2 года назад

    Что за программа

  • @ЖоржМилославкий
    @ЖоржМилославкий 2 года назад

    Подскажите пожалуйста, почему при вызове метода .grid, пайчарм выдает ошибку: tkinter.TclError: cannot use geometry manager grid inside . which already has slaves managed by pack

    • @egoroffchannel
      @egoroffchannel  2 года назад +1

      Потому что где то в коде использован pack или geometry

    • @ЖоржМилославкий
      @ЖоржМилославкий 2 года назад

      @@egoroffchannel Спасибо. Разобрался.

  • @КириллН-й3н
    @КириллН-й3н 3 года назад

    Почему нельзя присвоить command простую функцию def,почему именно lambda?

    • @МатвейСиливанов
      @МатвейСиливанов 3 года назад

      потому что функции def будут выполнятся сами. Ты запустишь программу, а у тебя в текстовом поле сразу будет написано 1234567890\+=-, а лямбда функции будут выполнятся только после нажатия. не знаю почему так, но я сам проверял

    • @ДамирКрасильников-б5г
      @ДамирКрасильников-б5г 2 года назад

      @@МатвейСиливанов нет, просто функция - это обьект (Разузнайте что такое ООП), и в параметр command нужно передавать нужную функцию как обьект, а не вызывать её. Если вы пишите (назовем функцию add_digit()) название функции со скобками, то интерпретатор выполняет её, где бы она не стояла, но в нашем случае нужно передавать имя функции без скобок, говоря что параметр command объекта Button теперь - функция add_digit()

  • @Felix-sw2mo
    @Felix-sw2mo Год назад

    Спасибо за видео

  • @djokr.3386
    @djokr.3386 Год назад

    Гайс, а как называется интерпретатор который юзает автор?

  • @plutongaming3735
    @plutongaming3735 2 года назад

    Спасибо

  • @amgabad
    @amgabad 3 года назад

    что за ide?

  • @yurynagorny
    @yurynagorny 2 года назад

    благодарю!!!

  • @qlyaxy
    @qlyaxy 4 года назад

    Очень сильно ждуу

  • @qlyaxy
    @qlyaxy 4 года назад

    Сделай пж продолжение

  • @АлександрКравченко-т2ю

    Спасибо

  • @georginrmz1639
    @georginrmz1639 3 года назад

    топчик

  • @vitsol2
    @vitsol2 4 года назад

    Отлично

  • @qlyaxy
    @qlyaxy 4 года назад

    Очень помогло

  • @influence3015
    @influence3015 4 года назад

    Здравствуйте, извините, что не совсем по теме видео, но можете кто нибудь подсказать тему ВКР (диплома) по программированию (желательно что бы связанное с самим программированием , но не вебпрограммированием...) Просто неожиданно мне тему по нейро сетям убрали и сказали придумывай тему сам, срок до ноября, а идей совсем нету.. (из языков знаю с с++, с#, java (похуже python и rust)) надеюсь, что пару идей найдете.. заранее спасибо!

  • @darul-asar381
    @darul-asar381 3 года назад +1

    Артем привет, у меня вопрос по поводу этой функции
    👇👇👇👇👇👇👇👇
    def add_digit(digit):
    value = calc.get() + str(num)
    calc.delete(0,tk.END)
    calc.insert(0,value)
    это поле 👉 calc.delete(0,tk.END) что оно удаляет? Я не очень понял логику его предназначения

    • @mayurko_5216
      @mayurko_5216 3 года назад

      Удаляет всё от начала до конца

  • @daniilkrivopust7377
    @daniilkrivopust7377 Год назад +1

    Интересно было смотреть, спасибо за видео❤

  • @СтаниславЗизевский-ц4ь

    👌👌👌

  • @mercik7478
    @mercik7478 3 года назад

    Кто нибудь, помогите. Я не могу превратить файл в exe шник. Именно конкретно с ткинтером. Вылетает, когда запускаю exe шник, который вывел с команды pyinstaller имя файла

    • @akayo_yt3438
      @akayo_yt3438 2 года назад

      pyinstaller -F имя файла так правильнее

  • @cyberboy5699
    @cyberboy5699 3 года назад

    код не рабочиий просто савте дизлайк поотеряете врремя

  • @cyberboy5699
    @cyberboy5699 3 года назад

    код не рабочиий просто савте дизлайк поотеряете врремя
    \

    • @naoki233
      @naoki233 2 года назад

      если вы написали что-то не правильно, то это именно ВЫ виноваты в этом, а никак не автор, лично у меня всё прекрасно работает

    • @HackerWhite4521
      @HackerWhite4521 10 дней назад

      @@naoki233 Нет просто код не работает это правда eval с помощью него создают этот калькулятор и не from tkinter a import tkinter!