Python Forum
multiplying diffrent variables.
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
multiplying diffrent variables.
#1
Hi got a little problem with my code im trying to multiply 3 diffrent variables and show the resault in a messagebox but im getting an error. I know my code to multiply the variables are wrong. But i dont know really how to do it. Could some one help me?

error.
Error:
Exception in Tkinter callback Traceback (most recent call last):   File "C:\Users\Xzenon\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 1550, in __call__     return self.func(*args)   File "C:\Users\Xzenon\Desktop\skatt rese avdrag.py", line 38, in resultat     self.resultat.set(float(self.Arbetsdagar.get())*float(self.Mil.get()*float(self.ersättning.get()))) TypeError: can't multiply sequence by non-int of type 'float'
My code
import tkinter as tk
from tkinter import messagebox

class Demo1:
    def __init__(self, master):
        self.master = master
        self.frame = tk.Frame(self.master)
        
        self.Arbetsdagar = tk.IntVar()
        self.Mil = tk.IntVar()
        self.ersättning = tk.IntVar()
        self.ersättning.set(18.50)
        
        self.Arbetsdagarl = tk.Label(self.frame, text = 'Arbetsdagar', font=('Arial', 20, 'bold'), width = 25)
        self.Arbetsdagarl.pack(padx=5, pady=2)
        self.Arbetsdagar = tk.Entry(self.frame, font=('Arial', 20, 'bold'), textvariable=self.Arbetsdagar, width = 25)
        self.Arbetsdagar.pack(padx=5, pady=5)
        self.Mill = tk.Label(self.frame, text = 'Mil', font=('Arial', 20, 'bold'), width = 25)
        self.Mill.pack(padx=5, pady=2)    
        self.Mil = tk.Entry(self.frame, font=('Arial', 20, 'bold'), textvariable=self.Mil, width = 25)
        self.Mil.pack(padx=5, pady=5)
        self.ersättningl = tk.Label(self.frame, text = 'Ersättning', font=('Arial', 20, 'bold'), width = 25)
        self.ersättningl.pack(padx=5, pady=2)
        self.ersättning = tk.Entry(self.frame, font=('Arial', 20, 'bold'), textvariable=self.ersättning, width = 25)
        self.ersättning.pack(padx=5, pady=5)
        self.Button2 = tk.Button(self.frame, text = 'Resultat', font=('Arial', 20, 'bold'), width = 25, command = self.resultat)
        self.Button2.pack(padx=5, pady=5) 
        self.quitButton = tk.Button(self.frame, text = 'Stäng', font=('Arial', 20, 'bold'), width = 25, command = self.close_windows)
        self.quitButton.pack(padx=5, pady=5)         
        self.frame.pack()


    def close_windows(self):
        self.master.destroy()

    def resultat(self):
        self.resultat = tk.IntVar()
        self.resultat.set(float(self.Arbetsdagar.get())*float(self.Mil.get()*float(self.ersättning.get())))
        messagebox.showwarning("Din ersättning är " (self.resultat))

def main(): 
    root = tk.Tk()
    app = Demo1(root)
    root.mainloop()

if __name__ == '__main__':
    main()
Reply
#2
Hi darktitan

I have made some modifications to your script. Please try it out:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tkinter as tk
from tkinter import messagebox
 
class Demo1:
    def __init__(self, master):
        self.master = master
        self.frame = tk.Frame(self.master)
         
        self.Arbetsdagar = tk.IntVar()
        self.Mil = tk.IntVar()
        self.ersättning = tk.IntVar()
        self.ersättning.set(18.50)
         
        self.Arbetsdagarl = tk.Label(self.frame, text = 'Arbetsdagar', font=('Arial', 20, 'bold'), width = 25)
        self.Arbetsdagarl.pack(padx=5, pady=2)
        
        self.Arbetsdagar = tk.Entry(self.frame, font=('Arial', 20, 'bold'), textvariable=self.Arbetsdagar, width = 25)
        self.Arbetsdagar.pack(padx=5, pady=5)
        
        self.Mill = tk.Label(self.frame, text = 'Mil', font=('Arial', 20, 'bold'), width = 25)
        self.Mill.pack(padx=5, pady=2) 
           
        self.Mil = tk.Entry(self.frame, font=('Arial', 20, 'bold'), textvariable=self.Mil, width = 25)
        self.Mil.pack(padx=5, pady=5)
        
        self.ersättningl = tk.Label(self.frame, text = 'Ersättning', font=('Arial', 20, 'bold'), width = 25)
        self.ersättningl.pack(padx=5, pady=2)
        
        self.ersättning = tk.Entry(self.frame, font=('Arial', 20, 'bold'), textvariable=self.ersättning, width = 25)
        self.ersättning.pack(padx=5, pady=5)
        
        #self.Button2 = tk.Button(self.frame, text = 'Resultat', font=('Arial', 20, 'bold'), width = 25, command = self.resultat)
        self.Button2 = tk.Button(self.frame, text = 'Resultat', font=('Arial', 20, 'bold'), width = 25, command = self.calc_resultat)
        self.Button2.pack(padx=5, pady=5)
         
        self.quitButton = tk.Button(self.frame, text = 'Stäng', font=('Arial', 20, 'bold'), width = 25, command = self.close_windows)
        self.quitButton.pack(padx=5, pady=5)
                 
        self.frame.pack()
 
 
    def close_windows(self):
        self.master.destroy()
 
    #def resultat(self):
    def calc_resultat(self):
        #self.resultat = tk.IntleVar()
        self.resultat = tk.DoubleVar()
        #self.resultat.set(float(self.Arbetsdagar.get())*float(self.Mil.get()*float(self.ersättning.get())))
        self.resultat.set(float(self.Arbetsdagar.get())*float(self.Mil.get())*float(self.ersättning.get()))
        
        messagebox.showwarning("Din ersättning är ", '{:.2f}'.format(self.resultat.get()))
 
def main(): 
    root = tk.Tk()
    app = Demo1(root)
    root.mainloop()
 
if __name__ == '__main__':
    main()
wuf Smile
Reply
#3
(Apr-12-2017, 04:18 PM)wuf Wrote: Hi darktitan

I have made some modifications to your script. Please try it out:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tkinter as tk
from tkinter import messagebox
 
class Demo1:
    def __init__(self, master):
        self.master = master
        self.frame = tk.Frame(self.master)
         
        self.Arbetsdagar = tk.IntVar()
        self.Mil = tk.IntVar()
        self.ersättning = tk.IntVar()
        self.ersättning.set(18.50)
         
        self.Arbetsdagarl = tk.Label(self.frame, text = 'Arbetsdagar', font=('Arial', 20, 'bold'), width = 25)
        self.Arbetsdagarl.pack(padx=5, pady=2)
        
        self.Arbetsdagar = tk.Entry(self.frame, font=('Arial', 20, 'bold'), textvariable=self.Arbetsdagar, width = 25)
        self.Arbetsdagar.pack(padx=5, pady=5)
        
        self.Mill = tk.Label(self.frame, text = 'Mil', font=('Arial', 20, 'bold'), width = 25)
        self.Mill.pack(padx=5, pady=2) 
           
        self.Mil = tk.Entry(self.frame, font=('Arial', 20, 'bold'), textvariable=self.Mil, width = 25)
        self.Mil.pack(padx=5, pady=5)
        
        self.ersättningl = tk.Label(self.frame, text = 'Ersättning', font=('Arial', 20, 'bold'), width = 25)
        self.ersättningl.pack(padx=5, pady=2)
        
        self.ersättning = tk.Entry(self.frame, font=('Arial', 20, 'bold'), textvariable=self.ersättning, width = 25)
        self.ersättning.pack(padx=5, pady=5)
        
        #self.Button2 = tk.Button(self.frame, text = 'Resultat', font=('Arial', 20, 'bold'), width = 25, command = self.resultat)
        self.Button2 = tk.Button(self.frame, text = 'Resultat', font=('Arial', 20, 'bold'), width = 25, command = self.calc_resultat)
        self.Button2.pack(padx=5, pady=5)
         
        self.quitButton = tk.Button(self.frame, text = 'Stäng', font=('Arial', 20, 'bold'), width = 25, command = self.close_windows)
        self.quitButton.pack(padx=5, pady=5)
                 
        self.frame.pack()
 
 
    def close_windows(self):
        self.master.destroy()
 
    #def resultat(self):
    def calc_resultat(self):
        #self.resultat = tk.IntleVar()
        self.resultat = tk.DoubleVar()
        #self.resultat.set(float(self.Arbetsdagar.get())*float(self.Mil.get()*float(self.ersättning.get())))
        self.resultat.set(float(self.Arbetsdagar.get())*float(self.Mil.get())*float(self.ersättning.get()))
        
        messagebox.showwarning("Din ersättning är ", '{:.2f}'.format(self.resultat.get()))
 
def main(): 
    root = tk.Tk()
    app = Demo1(root)
    root.mainloop()
 
if __name__ == '__main__':
    main()
wuf Smile

Thank you! works like a charm! Smile
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020