Создание GUI приложения Python tkinter. Как сделать Калькулятор на python Часть 2

  Рет қаралды 52,078

egoroff_channel

egoroff_channel

3 жыл бұрын

Стать спонсором канала и получить доступ к дополнительным материалам по Python
/ @egoroffchannel
boosty.to/egoroff_channel
/ artem_egorov
stepik.org/course/63085/syllabus
Курс по основам python на Степике
stepik.org/course/72969/promo
Записывайся на курс на Stepic по ООП, где найдешь много практических задач
Ссылка на урок
egoroffartem.pythonanywhere.co...
При помощи библиотеки tkinter можно создать свои десктопные графические приложения на python. Мы изучим все основные виджеты, которые применяются в формах и создадим на их основе такие проекты как Калькулятор, Paint, Сапер, Блокнот
Калькулятор на Python при помощи библиотеки tkinter
Все видео этого курса можете найти на сайте
egoroffartem.pythonanywhere.co...
или в Вк
videos-177962775?secti...
Если кому нужна помощь, предлагаю индивидуальные занятия. Подробнее пишите в личку в вк
artem_egoroff
python.study
В данном группе можете найти информацию о новых видео и задать вопросы

Пікірлер: 60
@romaroman8204
@romaroman8204 3 жыл бұрын
в функции add_digit есть баг. Если допустим попробовать написать 0*5, то в строке получится *5. В блоке if просто нужно добавить одно условие с длиной чтобы получилось: if value[0] == '0' and len(value) == 1:
@traurigerengel
@traurigerengel 2 жыл бұрын
Огромное вам спасибо, всё доходчиво и доступно, обожаю вас^^
@doctorshmurge2256
@doctorshmurge2256 3 жыл бұрын
Автор молодец, но не хватает одной детальки). Во всех видео уроках не уделяется внимание комментариям в коде. На мой взгляд, для начинающих это важная привычка.
@user-hj7cl1dm2c
@user-hj7cl1dm2c 3 жыл бұрын
Спасибо за продолжение, очень помог!!!
@lecturer_abramenkova
@lecturer_abramenkova 3 жыл бұрын
Добрый день! Здорово, коллега, нужно попробовать сделать со своими учениками!))
@user-us4vh4dt7l
@user-us4vh4dt7l 3 жыл бұрын
Спасибо!
@Andrei-de6mf
@Andrei-de6mf 3 жыл бұрын
кому надо весь код из этого видео, там я сам чуть по другому сделал и операцию 'очистить' добавил: from tkinter import * win = Tk() win.title("Calculator") win.geometry("195x220") #function def press(num): value = text.get() + str(num) if value[0] == '0': value = value[1:] text.delete(0,"end") text.insert(0,value) def op(o): value = text.get() if value[-1] in '-+/*': value = value[:-1] text.delete(0,"end") text.insert(0,value+o) def make(num): return Button(win,text=num,bd=6, command= lambda :press(num)) def make_o(operation): return Button(win,text=operation,bd=6, command= lambda :op(operation), fg = 'red',bg='blue') def calc(operation): return Button(win,text=operation,bd=6, command= lambda :press(operation), fg = 'red',bg='blue') text = Entry(win,font=('Arial',16),width = 15) text.insert(0,'0') text.grid(row=0,column=0,columnspan=4,stick="we",padx=4,pady=2) win.grid_columnconfigure(3,minsize=40) make(1).grid(row=1,column=0,stick="wens",padx=6,pady=6) make(2).grid(row=1,column=1,stick="wens",padx=6,pady=6) make(3).grid(row=1,column=2,stick="wens",padx=6,pady=6) make(4).grid(row=2,column=0,stick="wens",padx=6,pady=6) make(5).grid(row=2,column=1,stick="wens",padx=6,pady=6) make(6).grid(row=2,column=2,stick="wens",padx=6,pady=6) make(7).grid(row=3,column=0,stick="wens",padx=6,pady=6) make(8).grid(row=3,column=1,stick="wens",padx=6,pady=6) make(9).grid(row=3,column=2,stick="wens",padx=6,pady=6) make(0).grid(row=4,column=0,stick="wens",padx=6,pady=6) def clear(): text.delete(0,'end') Button(win,text='C',fg = 'red',bg='blue',command = clear, bd = 5).grid(row=4,column=2, stick="wens",padx=6,pady=6) make_o('+').grid(row=1,column=3,stick="wens",padx=6,pady=6) make_o('-').grid(row=2,column=3,stick="wens",padx=6,pady=6) make_o('/').grid(row=3,column=3,stick="wens",padx=6,pady=6) make_o('*').grid(row=4,column=3,stick="wens",padx=6,pady=6) make_o('=').grid(row=4,column=1,stick="wens",padx=6,pady=6) win.mainloop()
@nezeritbiwer
@nezeritbiwer 2 ай бұрын
Лучший броу)
@user-hj7cl1dm2c
@user-hj7cl1dm2c 3 жыл бұрын
и еще сделай,пожааайста
@ankhmarcius8331
@ankhmarcius8331 3 жыл бұрын
будет ли обзор возможности создавать окно как класс?
@bigmax1945
@bigmax1945 Ай бұрын
Как добавить в код операции '1/x', 'x^2', '-x' и 'sqrt(x)'? Ломаюсь уже который день, не знаю, как
@uladzimirpyzhyk6115
@uladzimirpyzhyk6115 Жыл бұрын
все супер, но на этапе добавления add_operation у меня при клике на кнопки +-*/ выдает ошибку string index out of range
@lamanosem
@lamanosem 3 жыл бұрын
Балдеееж
@user-wf5ns8wc2m
@user-wf5ns8wc2m 2 жыл бұрын
можно еще так def add_operation(operation): value=calc.get() if value[-1] in '-+/*': calc.delete(len(value)-1) calc.insert(tk.END, operation)
@meon3562
@meon3562 2 жыл бұрын
А что значит delete и зачем это делать?
@user-wf5ns8wc2m
@user-wf5ns8wc2m 2 жыл бұрын
@@meon3562 чтобы понять зачем delete посмотри ещё раз с 7:30
@IZH
@IZH 5 ай бұрын
У меня почему то в VCC, через CTRL не заменяет уже в калькуляторе цифры, остаются все кнопки или 1 или digit, если вручную менять на make_digit_button - то все норм меняется
@andreivanov4986
@andreivanov4986 Жыл бұрын
У меня шрифт на кнопке не становится красным ? def make_operation_button(operation): return tk.Button(text=operation, bd=5, fg='red', font=('Arial', 13), command=lambda: add_digit(operation))
@user-mu8me2su4b
@user-mu8me2su4b Жыл бұрын
а где можно посмотреть на этот код и скопировать?
@govdamikhaylo4183
@govdamikhaylo4183 3 жыл бұрын
Найсс::)
@game_prides
@game_prides 2 жыл бұрын
Какая версия пайчарма?
@user-fq7lj9cs8n
@user-fq7lj9cs8n 3 жыл бұрын
а есть функция, чтоб бэкграунд поменять на какую-то картинку, вместо фона? ну типо .config(bg=картинка)
@egoroffchannel
@egoroffchannel 3 жыл бұрын
stackoverflow.com/questions/10158552/how-to-use-an-image-for-the-background-in-tkinter предлагают через Label. Его можно сделать картинкой, и потом растянуть на весь экран
@user-fq7lj9cs8n
@user-fq7lj9cs8n 3 жыл бұрын
@@egoroffchannel спасибо)
@user-tx7qm7re4m
@user-tx7qm7re4m 3 жыл бұрын
Приветствую! я решил попробовать изменить цвет выводящихся операторов! чуть голову не сломал, много вариантов перепробовал, но пока никак! Можешь подкинуть идею?
@machio9684
@machio9684 3 жыл бұрын
В каком редакторе пишешь? И какие плагины используешь?
@egoroffchannel
@egoroffchannel 3 жыл бұрын
pycharm
@machio9684
@machio9684 3 жыл бұрын
@@egoroffchannel спасибо)
@user-ki3xi9tq7b
@user-ki3xi9tq7b 3 жыл бұрын
@@egoroffchannel я тоже
@smellofbebra
@smellofbebra 2 жыл бұрын
а почему именно 8.1???
@stofman1789
@stofman1789 3 жыл бұрын
А как зделать чтоб стералась не вся строка а лиш один символ? Я зделал одельную кнопку и разместил её но не знаю как зделать саму функцию
@-k1ro-490
@-k1ro-490 2 жыл бұрын
value = calc.get() if value[-1] in '1234567890': value = value[:-1] calc['state'] = tk.NORMAL calc.delete(0, tk.END) calc.insert(0, value) if value == '': calc.insert(0, '0') пользуйся
@user-cr8dc4op3x
@user-cr8dc4op3x Жыл бұрын
Лайк, подписка, колокольчик👍👍👍
@minecraftfour159
@minecraftfour159 2 жыл бұрын
5:17
@daniilloboda570
@daniilloboda570 3 жыл бұрын
Объясните пожалуйста ещё раз, для чего строчка с delete
@spaceman3882
@spaceman3882 3 жыл бұрын
у меня в самом последнем этапе видео ноль убирается, но цифра которую я ввожу раздваивается и следующие цифры тоже!
@spaceman3882
@spaceman3882 3 жыл бұрын
а все сорри нашел ошибку!!!😄
@ChpoKer666
@ChpoKer666 3 жыл бұрын
а можно готовый код? или ссылку на него
@egoroffchannel
@egoroffchannel 3 жыл бұрын
Его нет, только с видео печатать
@user-xc9du7is2r
@user-xc9du7is2r Жыл бұрын
не работает add_operation ероров нет но не работает как надо,не заменяется def add_operation(operation): value = calc.get() if value[-1] in "+-*/": value = value[:-1] calc.delete(0,tk.END) calc.insert(0, value) помогите плиз
@user-xr3zi5gi9k
@user-xr3zi5gi9k 2 жыл бұрын
if value[0]=='0': IndexError: string index out of range что делать?
@egoroffchannel
@egoroffchannel 2 жыл бұрын
пустая строка видимо учи теорию kzbin.info/www/bejne/f4WsY56Aa89rftE
@GAME-vc2wp
@GAME-vc2wp 6 ай бұрын
нечего не получилось! Вместо кнопок просто стало digit как будут понимать?
@user-hj3pb5df3p
@user-hj3pb5df3p 3 жыл бұрын
Что делать если у меня не работает make_digit_button
@nesvetskylev
@nesvetskylev 2 жыл бұрын
тот же вопрос. после этого все кнопки стали называться digit
@mrbulba
@mrbulba 3 жыл бұрын
После добавления Def add_operation не получается открыть пишет не знает команду import tkinter as tk хотя до этого всё было нормально
@sevastyan2207
@sevastyan2207 3 жыл бұрын
То же самое, delete не находит, да?
@sevastyan2207
@sevastyan2207 3 жыл бұрын
AttributeError: 'NoneType' object has no attribute 'delete'
@user-rm4oo7kz2z
@user-rm4oo7kz2z 2 жыл бұрын
Артем, огромное спасибо за твои уроки. Но уменя ошибка в функции add_digit def add_digit(digit) : value = calc.get() if value[0] == '0' and len(value) == 1: value = value [1:] calc.delete(0, tk.END) calc.insert(0, value+digit) calc.insert(0, value+digit) TypeError: can only concatenate str (not "int") to str Не могу понять по чему, все делал по видео.
@user-ml5ko3fv8m
@user-ml5ko3fv8m 2 жыл бұрын
нужно str(digit) использовать а не просто digit Строки можно прибавлять (конкатенировать) к строкам Числа - к числам Ты пытался добавить строку к числу def add_digit(digit): value = calc.get() if value[0] == "0": value = str(digit) else: value = calc.get() +str(digit) calc.delete(0,'end') calc.insert(0,value)
@vld7395
@vld7395 Жыл бұрын
можно и проще написать def add_digit(digit): calc.insert('end', digit)
@sevastyan2207
@sevastyan2207 3 жыл бұрын
Не работает delete(0, End) Все что нужно прописал, хотел добавить Button удаления текста с Entry поля Импортировал так- from tkinter import * def del (): entry1.delete(0, End) AttributeError: 'NoneType' object has no attribute 'delete'
@huseynovlatif9655
@huseynovlatif9655 2 жыл бұрын
у энд все быквы должны быть заглавные
@huseynovlatif9655
@huseynovlatif9655 2 жыл бұрын
при таком импорте надо взять какую либо переменную и присвоить Tk(). например: tk = Tk()
@vld7395
@vld7395 Жыл бұрын
импортируй delete отдельно, да и вообще "from tkinter import *" лучше не писать, ведь оно все не импортирует
Как быстро замутить ЭлектроСамокат
00:59
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 13 МЛН
Купили айфон для собачки #shorts #iribaby
00:31
He tried to save his parking spot, instant karma
00:28
Zach King
Рет қаралды 23 МЛН
100❤️
00:20
Nonomen ノノメン
Рет қаралды 67 МЛН
Делаю Игру "Змейка" в 3D на Python [ UrsinaEngine ]
13:59
1. Игра "Сапёр". Часть 1. Создаем игровое поле, меню.
21:06
ITMouse: международная школа программирования
Рет қаралды 1,6 М.
Архитектура ПО.  Введение
11:03
Ulbi TV
Рет қаралды 172 М.
Кратко про Python Tkinter | Как создавать GUI Приложения
11:08
Псевдо Программист
Рет қаралды 55 М.
Как быстро замутить ЭлектроСамокат
00:59
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 13 МЛН