Спасибо, благодаря этой серии уроков я успешно защитил свой школьный проект
@ЭлдинСыймыгы4 жыл бұрын
while True: print("Бесконечно круто")
@JaimeLeTech4 жыл бұрын
как удачно я в ютуб зашел
@School_43 жыл бұрын
Спасибо. Очень хорошее объяснение, детям понятное.
@BNXVS4 жыл бұрын
Шикарно. Но есть пара моментов... при применении DISABLED любое оформление Entry слетает (цвета фона, шрифта), что удручает. А так же в NORMAL, при вводе цифр они дублируются, скорее всего потому, что одновременно работает прямой ввод и event ловится. Т.е. по идее надо "перехват" отрубать при прямом вводе в Entry.
@crasa.one17 ай бұрын
спасибо огромное,благодаря тебе второй мой проэкт стал крутым, только вчера начал изучать про интерфейс,а на пайтоне уже год учусь писать
@dmb07094 жыл бұрын
Артëм, тут есть несколько вопросов! 1) Где '.' и вообще операции с float? 2) Где ссылка на гитхаб? 3) Тут явно не хватает ООП, чтоб по нажатии кнопки менять, например, тему на тëмную! 4) Расскажи немного подробнее про генерацию кнопок и где какие объекты и ссылки появляются, возможно отдельным ок калькулятора примером. Поддержите лайком, чтоб автор отреагировал!!!!
@АнтонНазарук-щ5с2 жыл бұрын
Благодарю за урок! Очень доходчиво. Мира Вашему дому.
@ReaIPavel Жыл бұрын
Артём, благодарю вас за этот плейлист! Какой же вы классный преподаватель! На Степике есть курс по Tkinter, пытался его проходить, но он ни в какое сравнение не идёт с этим плейлистом! P.S. Я пишу с фейковой страницы, не обращайте внимание на ник и фотку.
@andgv27583 жыл бұрын
Круть!! Первые два урока прошел. Осталось два... Ж))) Удачи Мастеру имне Ж))))
@Максим-ь1ш9х Жыл бұрын
Молодец Артём. Спасибо очень хорошо объясняешь👍👍👍
@ЧумоваяЛисичка Жыл бұрын
Спасибо ОГРОМНОЕ! На основе Вашего видео сделала лабу в вузе (калькулятор + и - в 4-ой системе счисления)
@sinsmith96872 жыл бұрын
Отличная подача материала. А все недоработки считайте вашем творчеством. Как говорится фундамент для творчества нам дали. 😄👍
@ветлер Жыл бұрын
очень хорошо объяснил
@Artemstars7 ай бұрын
Конец, Какая домашка если я не умею программировать (домашка понятная даже те люди которые не умеют программировать, сделали домашку) спасибо вам мне помогли сделать калькулятор
@СтаниславЗизевский-ц4ь Жыл бұрын
Спасибо за Ваш труд!
@User_14-493 жыл бұрын
Спасибо очень многое узнал) очень хорошее объяснение
@delillo1_62 жыл бұрын
Помогите, что делать если ошибка: Exception in Tkinter callback Traceback (most recent call last): File "tkinter\__init__.py", line 1948, in call File "calculator.py", line 42, in File "calculator.py", line 8, in add_digit IndexError: string index out of range
@antonl7652 Жыл бұрын
Спасибо за урок! Callback функции которые запускаются по нажатию на кнопки надо синхронизировать с основным телом программы? Или питон позаботился об этом?
@egorsokurenko4 жыл бұрын
Круть. Жду рисовалку
@zamestaimja4 жыл бұрын
Вот спасибо большое!!! Всё фунциклирует. Даже домашку сделал. Артём, скажите, а будет повесть о том, как из программы, которая работает только в питоне, сделать самостоятельное приложение? Спасибо.
@gusevsky3 жыл бұрын
тот же вопрос, создал себе калькулятор плотностей для работы, а как его выгрузить в отдельное самостоятельное приложение не знаю))))))
@MrNichosik3 жыл бұрын
kzbin.info/www/bejne/eZime6p6n9KSedk
@zamestaimja3 жыл бұрын
@@MrNichosik спасибо большое
@ЮлияСедегова-т9й4 жыл бұрын
Здравствуйте. Огромное спасибо вам за уроки - всё так просто объясняется! Скажите, а можно этот калькулятор перевести в .ехе файл?
@egoroffchannel4 жыл бұрын
да, есть модули специальные pypi.org/project/auto-py-to-exe/
@ЮлияСедегова-т9й4 жыл бұрын
@@egoroffchannel Огромное спасибо!
@анна-з2я9ш10 ай бұрын
Здравствуйте Артем, большая просьба к вам снимите видео как сохранять и передавать то что сверстали, на просторах интернета не могу найти подробное видео и до сих пор мучаюсь! Заранее благодарю
@0440-i8d Жыл бұрын
Где можно найти целый код?
@Werner_Spirit4 жыл бұрын
Очень круто! Спасибо! Предлагаю читающему задание: создать кнопку, которая добавляет точку для создания цифр с плавающей точкой! Если кто справился - скидывайте код ;) Успехов!
@Serhii_Tereshchuk4 жыл бұрын
Вроде справился ... но вопросов к этой версии еще хватает ... начал делать другой калькулятор. github.com/ters81/calculator
@vladimirleontiev88674 жыл бұрын
А что сложного? Просто еще одна кнопка которая добавит в конец Entry '.' , а eval() её успешно обработает
@Serhii_Tereshchuk4 жыл бұрын
@@vladimirleontiev8867 Там хватает ограничений ... Например: Вначале вводимого числа можно ввести только один "0" ; Если ввести "0", но не ввести точку, то этот ноль должен убраться; Чтобы вообще можно было вводить только одну точку в числе .... и т.д. Если копнуть, то добавление просто плавающей точки это не просто добавление просто кнопочки с цифрой.
@vladimirleontiev88674 жыл бұрын
@@Serhii_Tereshchuk ну это все предусмотреть я думаю тоже не сложно
@Serhii_Tereshchuk4 жыл бұрын
Никто же не спорит, но время на это нужно потратить.
@ignativanopulo70373 жыл бұрын
Ты лучший !!!
@MegaKartofan4 жыл бұрын
Можно ли сделать docked окна в tkinter'e и как это реализовывается в случае наличия нескольких модулей в программе
@ankhmarcius83314 жыл бұрын
а ведь можно было красиво закончить созданием декоратора, в который и обернуть функции
@egoroffchannel4 жыл бұрын
кстати, неплохая идея!)
@NazarHudaykulow972 ай бұрын
Маладес
@ЕвгенийПоловинский-в6у4 жыл бұрын
Артем, спасибо большое очередной раз. Осталось два вопроса, не могу понять что с этим делать: 1) относительно создания кнопок не работает свойство bg='red' и не работает свойство bd=3. при этом на само окно свойство bg срабатывает и подставляет нужный фон. 2) при методе .bind при вводе цирф с клавиатуры они почему-то вводятся по две, при этом буквы и символы типа'+-/*' вводятся нормально. Если есть какие-то соображения почему так может происходить, подскажи пожалуйста. В любом случае, благодарен безмерно.
@tsnstudio14693 жыл бұрын
Надо в конце ставить запятую ,,,,
@ЯрославХорольский-н2з3 жыл бұрын
огромное спасибо вам!!!
@АленаДмуховская-я5л2 жыл бұрын
Я ПОНИМАЮ, ЧТО ПРОШЕЛ ГОД, НО НЕ НАШЛИ ПРИЧИНУ ЗАДВОЕНИЯ ЦИФР?)
@Egor_Sacuro6 сағат бұрын
while True: print('Спасибо)))')
@vix_31943 жыл бұрын
Уррааа я смог калькулятор зделоть
@VenderPellegus3 жыл бұрын
После DiSABLED при попытке сделать вычисления появляется ошибка string index out of range
@uladzimirpyzhyk61152 жыл бұрын
годнота.спасибо
@exevon82144 жыл бұрын
Информативненько
@МихаилСергеев-к1и26 күн бұрын
А как же вводить десятичные дроби??????
@stofman17894 жыл бұрын
А как зделать чтоб стералась не вся строка а лиш один символ? Я зделал одельную кнопку и разместил её но не знаю как зделать саму функцию
@egoroffchannel4 жыл бұрын
про строки и срезы посмотри у меня видел
@A9lKC2 жыл бұрын
Как сделать так, чтоб нельзя было в поле Entry ставить курсор? А то потом начинает тупить. Например печатает по 2 раза одну и ту же цифру. А чтоб вообще не вводились буквы в Entry можно чуть дописать последнюю функцию def press_key(event): if event.char.isdigit(): add_digit(event.char) elif event.char in '+-*/': add_operation(event.char) elif event.char == ' ' or event.char == '=': calculate() else: value = calc.get() calc.delete(0, tk.END) calc.insert(0, value)
@Sergey-cz7ym2 жыл бұрын
можно запретить ввод букав в текстовое поле: def press_key_calc(event): if event.char not in '1234567890/*-+ ': return 'break' ..... calc.bind('', press_key_calc) А еще в калькуляторе есть глюк, если нажать цифру на клавиатуре когда фокус на главном окне, а потом щелкнуть мышкой на текстовое поле, то цифры начинают вводится по две: на месте курсора и в конце текстового поля. или если сразу начать вводить цифры с клавиатуры в текстовое поле то цифры вводятся по две, то есть текстовое поле принимает цифру и форма обрабатывает нажатие цифры, надо ставить условие проверки фокуса в бинде формы или что то типа того: def press_key(event): print(repr(event.char)) if event.char.isdigit() and str(event.widget).split(".")[-1] != '!entry': add_digit(event.char) elif event.char in '+-*/': add_ops(event.char) elif event.char == ' ': calculate() и добавить (bind) обработчик ввода на текстовое поле из которого вызывать add_digit(event.char) и add_operation(event.char) соответственно: def press_key_calc(event): print(repr(event.char)) if event.char not in '1234567890/*-+ ': return 'break' elif event.char in '1234567890': add_digit(event.char) return 'break' elif event.char in '/*-+': add_operations(event.char) return 'break' или запретить ввод в текстовое поле: def press_key_calc(event): return 'break' было бы интересно посмотреть на исправленный вариант решения и плюс с декораторами, как писали ниже
@kotopeSS_823 жыл бұрын
исходный код можно это проекта не работает он
@user-ce1qy6uf2d4 жыл бұрын
Спасибо!
@cherkassytrans3 жыл бұрын
Подскажите следующий момент: калькулятор сделан. Скомпилирован. Но при запуске открывается кроме программы коммандное досовское окно типа CMD. Как сделать так, чтобы оно не открывалось?
@delillo1_6 Жыл бұрын
а как ты компилировал?
@jon77739 Жыл бұрын
Нашел решение?
@nesvetskylev2 жыл бұрын
def press_key (event): print(event.char) if event.char.isgidit(): add_digit(event.char) elif event.chart in "+-/*": add_operation(event.char) При выводе дает ошибку AttributeError: 'str' object has no attribute 'isgidit'. Почему?
@Misha_26632 жыл бұрын
Попробой не "+-/*" а '+-/*'
@dolbocat Жыл бұрын
isgidit() у вас буквы местами поменяны. isDiGit() надо
@satoani2 жыл бұрын
Топ
@armstrong3169 Жыл бұрын
Надо добавить числа с точкой
@cryptika_btc2 жыл бұрын
сделал простейший калькулятор на 28 строк 17ю кнопками. считает, нет ошибки на дивижн бай зиро. зачем писать 10 раз создание кнопки?
@Trezvy_Papa2 жыл бұрын
Вы молодец! Функции использовали?
@AAZORIN3 жыл бұрын
👍
@СергейЗверев-м9ы2 жыл бұрын
Ещёбы этот проект сделать приложением для компа или сотки! Чтобы пользоваться и знать что это я создал!
@Misha_26632 жыл бұрын
Як забіндити кнопку backspace
@Виктор-н8р7д Жыл бұрын
char(backspace) = '\x08'
@yasuperdashakakasha4 жыл бұрын
Здраствуйте, а вы пишите на профессиональном PyCharm или Community версии? Заранее спасибо.
@egoroffchannel4 жыл бұрын
на видео Community версия, работаю в про
@yasuperdashakakasha4 жыл бұрын
@@egoroffchannel Спасибо
@novorec12814 күн бұрын
Писец, как круто, не думал, что из одного калькулятора столько нюансов узнаю. Как раз это и нужно было. Вот столько ненужных операторов, чтобы тупо заставить глупого пользователя вводить цифры вместо букв и символов. typeguard по-моему должен защить от неправильного ввода. Может кто знает нужный модуль. Вот столько ненужного кода с исключениями, этож кошмар.
@DrW1ne2 жыл бұрын
я энтер и делет сделал через keysym
@joehart73824 жыл бұрын
Не сказал, что с функцией eval() нужно быть осторожнее. Она выполняет даже вредоносный код.
@exevon82144 жыл бұрын
В каком смысле?
@kirillusenko4 жыл бұрын
@@exevon8214 всмысле она не только обрабатывает примеры, но и код. Пример: >>> eval("print(7)") >>> 7
@exevon82144 жыл бұрын
Ясно, спасибо за инфу.
@SLSRPPRO4 жыл бұрын
напиши пожалуйста программу для перевода IP address в двоичную с gui
@ARLIAMANJHO3 ай бұрын
В конце к чему эта дичь была? Зачем дизэйблить работающий калькулятор? Когда експерт перехитрил сам себя
@thealfa62253 жыл бұрын
Кто может скинь Фулл код
@alexempty35672 жыл бұрын
import tkinter as tk from tkinter import messagebox def add_digit(digit): value = calc.get() if value[0] == '0' == '0' and len(value) == 1: 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 make_digit_button(digit): return tk.Button(text=digit, bd=5, font=('Arial', 13), fg='red', command=lambda: add_digit(digit)) def make_operation_button(operation): return tk.Button(text=operation, bd=5, font=('Arial', 13), command=lambda: add_operation(operation)) def calculate(): value = calc.get() if value[-1] in '+-/*': operation = value[-1] value = value[:-1] + operation + 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 make_calc_button(operation): return tk.Button(text=operation, bd=5, font=('Arial', 13), command=calculate) def make_clear_button(operation): return tk.Button(text=operation, bd=5, font=('Arial', 13), command=clear) def clear(): calc.delete(0, tk.END) calc.insert(0, 0) 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"240x280+100+200") win['bg'] = '#FFF' win.title('Калькулятор') win.bind('', press_key) calc = tk.Entry(win, justify=tk.RIGHT, font=('Arial', 15), width=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('С').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()
@okulies7632 жыл бұрын
Даже не открывает программу.. мне плакать хочется (
@dobriyenotic91494 жыл бұрын
Хватит мучать Tkinter он старик ему пора на пенсию, есть же QT Designer
@dmb07094 жыл бұрын
ты меня расстраиваешь, Я только начал этот ткинтер учить, тут этот канал подвернулся, а уже надо дальше бежать. 😞
@dobriyenotic91494 жыл бұрын
@@dmb0709 но это правда, посмотри калькулятор на QT Designer - kzbin.info/www/bejne/fJm5Yo17i7N-Zpo, и сравни что вышло у него, да такого можно добиться и на ткинтере но это будет труднее, и ты столкнешься с ошибками и тебе мало кто поможет т.к. тинкер мало кто ипользует и я уверен он уже даже не поддерживается
@dmb07094 жыл бұрын
@@dobriyenotic9149 я обязательно завтра посмотрю, а то сегодня уже голова 🤯. Но вообще на ткинтере учат из-за его присутствия в стандартной библиотеке. А всякие qt ещё и ставить нужно.
@dobriyenotic91494 жыл бұрын
@@dmb0709 ну это да, кстати если будут проблемы пиши, я столько с ними провозился
@dmb07094 жыл бұрын
@@dobriyenotic9149 Спасибо! Для меня программирование тренировка мозга, чтоб не засох от основной деятельности. Поэтому Я с удовольствием читаю доки и подтягиваю английский.