Tkinter converting entry to int error

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • PythonKid123
    New Member
    • Nov 2014
    • 2

    Tkinter converting entry to int error

    I am trying to finish my program but it comes up with this error....The program asks you how many sides and the length of the sides then draws a shape....

    Code:
    import tkinter
    import turtle
    window = tkinter.Tk()
    
    def callback():
        pen1 = turtle.Pen()
        for i in range(ent):
            pen1.forward(ent1)
            pen1.right(360/ent)
        
    
    lbl = tkinter.Label(window, text="How Many Sides :")
    lbl.pack()
    
    ent = tkinter.Entry(window)
    ent.pack()
    
    lbl1 = tkinter.Label(window, text="Length Of Sides :")
    lbl1.pack()
    ent1 = tkinter.Entry(window)
    ent1.pack()
    
    
    btn = tkinter.Button(window, text="Draw", command = callback)
    btn.pack()
    window.title("Shape Creator")
    window.geometry("300x300")
    window.mainloop()
    Last edited by Rabbit; Nov 28 '14, 09:23 PM. Reason: Please use [code] and [/code] tags when posting code or formatted data.
  • dwblas
    Recognized Expert Contributor
    • May 2008
    • 626

    #2
    Tkinter variables are not Python variables so you have to convert using get(). The values will have to be cast to an integer as they are strings by default. Change the callback() function to the following to see how it works.
    Code:
    def callback():
       value=ent.get()
       print("sides =", value, type(value))
       value=ent1.get()
       print("length =", value, type(value))

    Comment

    • PythonKid123
      New Member
      • Nov 2014
      • 2

      #3
      Still coming up with an error(sorry im a noob at python) TypeError: can't multiply sequence by non-int of type 'float'
      CODE:
      Code:
      import tkinter
      import turtle
      window = tkinter.Tk()
      
      def callback():
         value=ent.get()
         
         print("sides =", value, type(int))
         value1=ent1.get()
         print("length =", value1, type(int))
         
         pen1 = turtle.Pen()
         pen1.forward(value1)
         pen1.right(360/value)
          
      
      lbl = tkinter.Label(window, text="How Many Sides :")
      lbl.pack()
      
      ent = tkinter.Entry(window)
      ent.pack()
      
      lbl1 = tkinter.Label(window, text="Length Of Sides :")
      lbl1.pack()
      ent1 = tkinter.Entry(window)
      ent1.pack()
      
      
      btn = tkinter.Button(window, text="Draw", command = callback)
      btn.pack()
      window.title("Shape Creator")
      window.geometry("300x300")
      window.mainloop()
      Last edited by Rabbit; Nov 29 '14, 07:46 PM. Reason: Please use [code] and [/code] tags when posting code or formatted data. Second warning

      Comment

      • dwblas
        Recognized Expert Contributor
        • May 2008
        • 626

        #4
        You have to post the complete error message to show where the error is occurring to get help on that. See string to integer here for general info on how to convert.

        Comment

        Working...