GUI PYTHON КАЛЬКУЛЯТОР на TKINTER за 20 МИНУТ

Поделиться
HTML-код
  • Опубликовано: 30 сен 2024
  • Создаем GUI калькулятор на питоне. Калькулятор с интерфейсом на python намного удобнее и практичнее, чем консольный калькулятор.
    Для разработки была использована библиотека Tkinter.
    Ссылка на документацию по tkinter:
    docs.python.or...
    #python #tkinter #calculator #калькулятор #coding #programming #ткинтер #пайтон

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

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

    Ссылка на документацию по tkinter:
    docs.python.org/3/library/tkinter.html

  • @cronos_voron
    @cronos_voron 7 месяцев назад +2

    у меня не работает

    • @shcoder001
      @shcoder001  7 месяцев назад

      что именно

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

      ​@@shcoder001 ничего не считает

  • @yadikartokhtakhunov5837
    @yadikartokhtakhunov5837 9 месяцев назад +1

    Можно готовый код пожалуйста?

    • @shcoder001
      @shcoder001  9 месяцев назад

      с сожалению, я его тогда не сохранил

  • @sergiopopov2144
    @sergiopopov2144 Год назад +4

    Я начинаю учить Python, только что понял это команды if . Я могу сделать калькулятор , но без кнопок , чисто на консоле . Для меня это сложно, потому что я ищё не знаю большинства команд и тд. Было бы классно если бы ты немного снимал для новичков , как типа уроки . Это очень актуально будет .

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

      Спасибо, учту. Как раз хотел параллельно сделать мини курс с основ до оконных приложений и сайтов с ботами.

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

      @@shcoder001 спасибо

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

    А вы можете сделать часть 2, про то как улучшить этот калькулятор?

    • @shcoder001
      @shcoder001  Год назад +2

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

  • @vugarhuseynov7882
    @vugarhuseynov7882 26 дней назад +1

    😁👍👍

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

    Все таки для новичков в самый раз как по мне. Я как раз ткинтер изучаю и вот на этом уровне как раз все доступно и понятно.. Спасибо большое

  • @Паладинчик
    @Паладинчик 10 месяцев назад +2

    Калькулятор очень хороший объяснение тоже. Только для новичков написать ошибку деления на ноль составляет небольшие трудности. Можно 2 часть и с улучшением дизайна и как раз написанием кода))

    • @shcoder001
      @shcoder001  10 месяцев назад +1

      подумаю над предложением, спасибо

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

    Очень полезный ролик

  • @panatseya
    @panatseya 8 месяцев назад +1

    Здраствуйте, выдает ошибку Exception in Tkinter callback
    Traceback (most recent call last):
    File "C:\Users\mrusl\AppData\Local\Programs\Python\Python311\Lib\tkinter\__init__.py", line 1948, in __call__
    return self.func(*args)
    ^^^^^^^^^^^^^^^^
    File "C:\Users\mrusl\PycharmProjects\pythonProject\main.py", line 38, in count_result
    clear()
    TypeError: 'Button' object is not callable

    • @shcoder001
      @shcoder001  8 месяцев назад +1

      функцию clear назвал и кнопку clear назвал

    • @panatseya
      @panatseya 8 месяцев назад +1

      ​@@shcoder001спасибо большое!

  • @GAME-vc2wp
    @GAME-vc2wp 9 месяцев назад +2

    Дизлайк! В конце просто выдало ошибку ну тоесть не выдает ответ

    • @shcoder001
      @shcoder001  9 месяцев назад

      у других почему-то все ок) про деление на ноль я сказал

    • @GAME-vc2wp
      @GAME-vc2wp 9 месяцев назад +1

      Ладно, может быть сейчас получиться. Простите если обидела

    • @shcoder001
      @shcoder001  9 месяцев назад

      я не обидчивый)@@GAME-vc2wp

  • @LimeSpeedCrystal
    @LimeSpeedCrystal Год назад +2

    Только можно в entry писать, даже буквами! Можно это исправить?

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

      Да.
      У entry устанавливаем в скобках параметр state = 'readonly', а дальше внутри функции, в самом начале функции input_into_entry нужно сделать entry['state'] = 'normal' и в конце entry['state'] = 'readonly' , таким образом мы запрещаем ввод с клавиатуры.

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

      @@shcoder001 entry(state = "readonly") и...

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

      @@shcoder001 Всё, понял!

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

      @@LimeSpeedCrystal супер!

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

      @@shcoder001 Сделаю суперский калькулятор. 👍

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

    Функцию count_result можно было сделать с помощью eval()

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

      да, в данном примере можно было и так. верно подмечено

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

    Не делайте from tkinter import* и вообще никогда не импортируйте так, потому что может случиться конфликт имен

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

      в данном кейсе юзаем мало либ. Да и плюс , сколько всего не использовал, ни разу не было конфликтов. Но спасибо.

  • @ДмитрийСемёнов-я5щ

    Спасибо за урок)

  • @parshmarow-brawlstars7048
    @parshmarow-brawlstars7048 Год назад +1

    а как сделать чтобы несколько чисел вводить можно было

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

      тогда нужен другой код, либо в этом коде использовать цикл

  • @nurEmil-gb4ix
    @nurEmil-gb4ix Год назад +1

    18:05 я думал ты скажешь про отсутствие возможности использовать сразу разные знаки. 2+3-1

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

      да, это тоже минус данного простенького калькулятора.

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

    Подскажите что делать если написал все как на видео а окно с калькулятором не отображается ?

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

      в конце забыли window.mainloop() 90%

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

    И что, за весь ролик никто не заметил отсутствия нуля?. Или так задумано автором изначально....

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

      я же сказал про это в конце

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

      я по привычке его добавил, только в конце понял что у автора его нет

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

    выдает ошибку в консоль есле ввести 1/0

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

      да, потому что нет проверки при делении на 0, о чем я и сказал) Но вы внимательный!

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

    У меня у одного выдаёт ошибку в консоль:
    if '+' in text:
    ^^^^^^^^^^^
    TypeError: argument of type 'method' is not iterable

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

      text = entry.get() выше правильно написал? (сдается, что забыл скобки)

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

      @@shcoder001 я забыл скобки и уже собирался написать коментарий х) хорошо что решил сначала в коментарии заглянуть

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

      @@ingener_gaming да, такое бывает)

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

    я не знаю как 0 добавить(

  • @MrSfm-w1j
    @MrSfm-w1j Год назад +1

    Здрасьте . Можно вопрос?У вас PyCharm?

  • @ser-djiostand2825
    @ser-djiostand2825 Год назад +1

    ноль забыл добавить🤣

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

      да, потом заметил. смешно получилось))

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

    Можно код, пожалуйста

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

      к сожалению, с этого видоса не осталось. посмотри мое новое видео, там тоже я делал калькулятор при помощи чата GPT

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

    text1=float(textt.split[0])
    ^^^^^^^^^^^
    AttributeError: 'list' object has no attribute 'split'
    Можете помочь ? В чём тут проблема ?)

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

      у тебя textt - это уже список. попробуй float(textt[0])

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

      а вообще ты команду неправильно написал. text1=float(textt.split()[0])

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

    Ооо, сейчас 999 подписчиков) Я буду 1000 ровно!

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

      Теперь у тебя 1к)

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

      дааа, спасибо!

  • @qweasdzxc_1-q7i
    @qweasdzxc_1-q7i Год назад +1

    Добрый день, а как добавить и запрограммировать кнопку корня?

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

      добрый. создаете такую же кнопку, как в примерах. а дальше - функцию для нее. вычиляем корень по формуле a = b**0.5

    • @qweasdzxc_1-q7i
      @qweasdzxc_1-q7i Год назад +1

      @@shcoder001 спасибо

    • @qweasdzxc_1-q7i
      @qweasdzxc_1-q7i Год назад +1

      @@shcoder001 Извиняюсь, что поздно, но функция будет выглядеть так?
      def koren() :
      entry.insert (END, symbol)
      def koren_result () :
      text = entry. get()
      if ' (значок корня)' in text :
      splitted_text = text.split('(значок корня )')
      a = b**0.5
      result = a
      Это просто мой первый проект после hello world. Заранее спасибо

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

      @@qweasdzxc_1-q7i Не совсем. Можете задать у вопрос у нас в чатике телеграм. там я или кто-то другой поможем вам. ссылочка в профиле. (тут просто не совсем удобно пояснять по коду)

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

    Очень классно!

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

    СПАСИБО

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

    А я же хочу поменять потом entry на label.

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

      можно

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

      @@shcoder001 Но я отказался от этой идею и делаю платформер с помощью Tkinter.

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

      @@shcoder001 А как удалить всё с canvas Tkinter?

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

      @@LimeSpeedCrystal canvas.delete("all")

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

      @@LimeSpeedCrystal canvas.delete("all")