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

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

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
@lecturer_abramenkova
@lecturer_abramenkova 3 жыл бұрын
Добрый день! Здорово, коллега, нужно попробовать сделать со своими учениками!))
@traurigerengel
@traurigerengel 2 жыл бұрын
Огромное вам спасибо, всё доходчиво и доступно, обожаю вас^^
@user-hj7cl1dm2c
@user-hj7cl1dm2c 3 жыл бұрын
Спасибо за продолжение, очень помог!!!
@romaroman8204
@romaroman8204 3 жыл бұрын
в функции add_digit есть баг. Если допустим попробовать написать 0*5, то в строке получится *5. В блоке if просто нужно добавить одно условие с длиной чтобы получилось: if value[0] == '0' and len(value) == 1:
@doctorshmurge2256
@doctorshmurge2256 3 жыл бұрын
Автор молодец, но не хватает одной детальки). Во всех видео уроках не уделяется внимание комментариям в коде. На мой взгляд, для начинающих это важная привычка.
@user-us4vh4dt7l
@user-us4vh4dt7l 3 жыл бұрын
Спасибо!
@user-hj7cl1dm2c
@user-hj7cl1dm2c 3 жыл бұрын
и еще сделай,пожааайста
@ankhmarcius8331
@ankhmarcius8331 3 жыл бұрын
будет ли обзор возможности создавать окно как класс?
@lamanosem
@lamanosem 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 ай бұрын
Лучший броу)
@uladzimirpyzhyk6115
@uladzimirpyzhyk6115 Жыл бұрын
все супер, но на этапе добавления add_operation у меня при клике на кнопки +-*/ выдает ошибку string index out of range
@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
@govdamikhaylo4183
@govdamikhaylo4183 3 жыл бұрын
Найсс::)
@bigmax1945
@bigmax1945 Ай бұрын
Как добавить в код операции '1/x', 'x^2', '-x' и 'sqrt(x)'? Ломаюсь уже который день, не знаю, как
@user-tx7qm7re4m
@user-tx7qm7re4m 3 жыл бұрын
Приветствую! я решил попробовать изменить цвет выводящихся операторов! чуть голову не сломал, много вариантов перепробовал, но пока никак! Можешь подкинуть идею?
@IZH
@IZH 5 ай бұрын
У меня почему то в VCC, через CTRL не заменяет уже в калькуляторе цифры, остаются все кнопки или 1 или digit, если вручную менять на make_digit_button - то все норм меняется
@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-mu8me2su4b
@user-mu8me2su4b Жыл бұрын
а где можно посмотреть на этот код и скопировать?
@andreivanov4986
@andreivanov4986 Жыл бұрын
У меня шрифт на кнопке не становится красным ? def make_operation_button(operation): return tk.Button(text=operation, bd=5, fg='red', font=('Arial', 13), command=lambda: add_digit(operation))
@game_prides
@game_prides 2 жыл бұрын
Какая версия пайчарма?
@machio9684
@machio9684 3 жыл бұрын
В каком редакторе пишешь? И какие плагины используешь?
@egoroffchannel
@egoroffchannel 3 жыл бұрын
pycharm
@machio9684
@machio9684 3 жыл бұрын
@@egoroffchannel спасибо)
@user-ki3xi9tq7b
@user-ki3xi9tq7b 3 жыл бұрын
@@egoroffchannel я тоже
@minecraftfour159
@minecraftfour159 2 жыл бұрын
5:17
@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') пользуйся
@daniilloboda570
@daniilloboda570 3 жыл бұрын
Объясните пожалуйста ещё раз, для чего строчка с delete
@user-cr8dc4op3x
@user-cr8dc4op3x Жыл бұрын
Лайк, подписка, колокольчик👍👍👍
@ChpoKer666
@ChpoKer666 3 жыл бұрын
а можно готовый код? или ссылку на него
@egoroffchannel
@egoroffchannel 3 жыл бұрын
Его нет, только с видео печатать
@spaceman3882
@spaceman3882 3 жыл бұрын
у меня в самом последнем этапе видео ноль убирается, но цифра которую я ввожу раздваивается и следующие цифры тоже!
@spaceman3882
@spaceman3882 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) помогите плиз
@GAME-vc2wp
@GAME-vc2wp 6 ай бұрын
нечего не получилось! Вместо кнопок просто стало digit как будут понимать?
@user-xr3zi5gi9k
@user-xr3zi5gi9k 2 жыл бұрын
if value[0]=='0': IndexError: string index out of range что делать?
@egoroffchannel
@egoroffchannel 2 жыл бұрын
пустая строка видимо учи теорию kzbin.info/www/bejne/f4WsY56Aa89rftE
@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)
@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-hj3pb5df3p
@user-hj3pb5df3p 3 жыл бұрын
Что делать если у меня не работает make_digit_button
@nesvetskylev
@nesvetskylev 2 жыл бұрын
тот же вопрос. после этого все кнопки стали называться 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 *" лучше не писать, ведь оно все не импортирует
🌊Насколько Глубокий Океан ? #shorts
00:42
King jr
Рет қаралды 3,6 МЛН
小女孩把路人当成离世的妈妈,太感人了.#short #angel #clown
00:53
Just try to use a cool gadget 😍
00:33
123 GO! SHORTS
Рет қаралды 74 МЛН
Кратко про Python Tkinter | Как создавать GUI Приложения
11:08
Псевдо Программист
Рет қаралды 56 М.
НЕЙРОСЕТЬ своими руками за 10 минут на Python
11:10
Хауди Хо™ - Просто о мире IT!
Рет қаралды 1 МЛН
Делаю Игру "Змейка" в 3D на Python [ UrsinaEngine ]
13:59
Programming Fundamentals - #1 - Logic and algorithms
15:29
loftblog
Рет қаралды 1,5 МЛН
🌊Насколько Глубокий Океан ? #shorts
00:42
King jr
Рет қаралды 3,6 МЛН