▶️ Watch Entire Tkinter Playlist ✅ Subscribe To My RU-vid Channel: bit.ly/2UFLKgj bit.ly/2IGzvOR ▶️ See More At: ✅ Join My Facebook Group: Codemy.com bit.ly/2GFmOBz ▶️ Learn to Code at Codemy.com ✅ Buy a Codemy T-Shirt! Take $30 off with coupon code: youtube1 bit.ly/2VC9WUN
Great teaching ! This playlist is paced so well. I've been going in circles trying to get started with Tkinter till now. This gave me a confidence boost ! Thank you!
I know this is late but what other type of functions did you add im adding some stuff too but just the division and multiplication wondering if you did anything else?
Nice video series and good explanation. Comment to the commentators: I no sometimes there are weird error messages but I think instead of asking here you could try to figure it out by yourself . It might take some time and can be annoying but at the end of the day you like to learn how to code by yourself and then you'll need to find solutions to upcoming issues. Cheers
I do this to some extent. I will try any ideas I have of the top of my head, for me this is about 10 -15 mins of re-writing and testing. Once I feel like I'm out of ideas, then I'll google or ask around.
Is not there a way to use for loop? By the way I gonna create a timer for PC with GUI and want to understant how i will use os. system's shutdown commands with tkinter. Of course input must be int.
Thanks for the great intro to python. Can't believe my first project worked:) Can you explain how to limit input to the GUI or easily exclude letters and non 'math' symbols from the keyboard please?
Hello Codemy how can i get an auto selection on a row in a treeview when i get a search when i search i want to get the result i try tree.selection_set(), but it can't selected row
Hi John, Loving your TKinter tutorials so far. I have a question, though. I wrote this loop to create the buttons for 1-9: for x in range(1,4): y = 10-3*x for z in range(y, y+3): btn = Button(root, text=z, padx=40, pady=20, command=lambda: button_click(z)).grid(row=x, column=z-y) The buttons are rendered fine, but when I click them, they all insert the number 3 into the entry box, regardless of the number on the button. Changing the lambda as below solved the problem, but I don't understand why: lambda q=z: button_click(q) Can you explain it?
Because you are in a loop and the lambda function you wrote has no variable i it takes the value of the last iteration. In order to fix it write your lambda like this: lambda q=z: button_click(q) which will work because q is a variable of the lambda so it changes every time you call it. Also its more pythonic to create your buttons with a list instaid of having for loops.
@@444444444paok Thanks for the explanation! When you say create buttons with a list, do you mean create each button on a separate line, like in the video, or using a [list]?
Hello from Croatia - 🇭🇷 First, I just want to say that I love your videos. I think that your explaining skills are a great. Second - I have a question : I built my calculator and everything works perfect but I want to know how the Entry widget recognizes "123" as one number and not as three numbers - "1" , "2" , "3". Is that just how it works or what ? Because we don't need to code anything for it to do that.
@@adarsht6266 People who purchase membership to my site can ask questions about the videos and I answer them. I don't do consulting outside of my courses tho.
Imo a cleaner and (more) pythonic way of defining all the buttons is number_buttons = [ Button( root, text=str(i%10), padx=40, pady=20, command=(lambda j=i : button_click(j%10)) ) for i in range(1, 11)] Then, to put them on the grid for i in range(10): number_buttons[i].grid(row=i//3+1, column=i%3)
@@Codemycom Ive been enjoying your videos until I started reading your responses. I have to say they arent very professional, Iike this one above. I hope you have grown to be more understanding in the last 3 yrs!
Hi, have a problem, at 11:04 line 25 and 26 button_0 = Button(root, text='0', padx=40, pady = 20, command = button_add()) button_add = Button(root, text='+', padx=40, pady = 20, command = button_add()) seems the button_add redefine the botton_add, it caused error 'Button' object is not callable did I type something wrong otherwise.
I´ve been trying to bind the buttons to keys on the keyboard, every time it seems to just type out all the numvers and they keys don't seem to do anything. Any advice?
This is late but I had the problem with it too. I was on Mac and it turns out that there is a way to tell the tkinter module to move the buttons closer. Just add sticky= "nsew" to the end of all of your .grid() method (example : button_1.grid(row=3, column=0, sticky="nsew") stackoverflow.com/questions/45828923/remove-space-between-buttons-in-tkinter#45844991
I get a syntax error associated with the Lambda; based on some Stack Overflow comments this looks like it's not possible to use in Python 3? I should go try my older version of Python and see if it works there. Not sure how to get around this. OK never mind thanks, I saw your answer about lowercase L in "lambda". But YOUR screen keeps capitalizing them! At least it looks like uppercase.
I like your tutorials but i want to know that how can we make that First when we start a start button will be visible and when we click it the screen changes to this calculator in that screen only not in another screen So please tell me And also Thank You
the syntax error for the lambda function got me too. I tried a few things before I remembered that comments were a thing. hurray for the comments sections.
Hello sir! Thanks for the video, very helpful. I've encountered a problem. Before this, I tried the 'Click Me!' Box. Even after copying down the entire same thing of the calculator code, I still get the 'Enter your name' and 'Click Me!' box. How do I change that? Please help me.
do the grid in a new line and it will solve the problem. for example: e = Entry(root) e.grid(row=0, column=0) instead of e = Entry (root).grid(row=0, column=0)
What version of python is everyone using? I'm using 3.9.2 and getting the following error: button_1 = Button(root, text="1", padx=40, pady=20, command=Lambda: button_click(1)) ^ SyntaxError: invalid syntax
I kept getting the same error but figured out where i buggered up. i kept receiving this message: "TypeError: 'Button' object is not callable" this was because i skipped the step where you renamed the button function, from 'button_add' to 'button_click'. at the time I thought the name change was just an aesthetic preference. which caused a problem with another line where a button was named 'button_add' (the button planned for i didn't notice the problem because the name was buried with the equals and clear buttons, thought id mention my troubles in case somebody else stumbles on the same stump
i am getting this error Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\GEETIKA\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1705, in __call__ return self.func(*args) File "D:\tkinter\Project 1 - Calculator.py", line 38, in button_8 = Button(root, text = "8", padx=40, pady=20, command = lambda: button_click(8)) TypeError: button_click() takes 0 positional arguments but 1 was given pls tell
@@Codemycom I don't see a step for sizing the window in the video. I think the main reason is I'm working on a Mac. I tried changing fg and bg colors and it would not work. I had to import tkmacosx. Which works but the layout changes when I comment it out vs use it. Thanks for the reply, hitting a walk with the next section in getting my icon to show up. I tried absolute path and relative paths.
hi, i wrote the code exactly as the tutorial but it have me this: button_3=Button(root,text="3",padx=40,pady=20,command=lambda:button_click(3)) TypeError: 'Button' object is not callable
I am stuck with this... went through the whole list of comments but still have the issue: butt_1 = Button(root, text="1", padx=40, pady=20, command=lambda: butt_click(1)) However when I click the button it says object not callable
Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\Rex\AppData\Local\Programs\Python\Python38\lib\tkinter\__init__.py", line 1883, in __call__ return self.func(*args) File "G:/python/calc_gui.py", line 33, in button14= Button(root,text="0",padx=30,pady=30,command=lambda: Button_click(0)).grid(row=6,column=3) File "G:/python/calc_gui.py", line 12, in Button_click e.delete(0,tk.END) AttributeError: 'NoneType' object has no attribute 'delete'
I've done the code the same as you have but whenever i click on a number button it says "TypeError: button_click() takes 0 positional argument but 1 was given" I have no idea what this means please help o_o
When you originally defined button click, you probably didn't put anything between the parenthesis. The correct code should be def button_click(number):
I've tried to create the buttons with a loop but it always returns the last one timer=0 r=1 c=0 for i in [7,8,9,4,5,6,1,2,3,0]: myButton = Button(root, text=str(i), padx=40, pady=20, command=lambda: button_click(i)) myButton.grid(row=r, column=c) c+=1 timer+=1 if timer==3: timer=0 c=0 r+=1