2017-01-29 12 views
0

私は、あなたがどれくらいの金額を費やしているか、月末にどれくらいの金額を支払うかによって計算する計算機に取り組んでいます。Kivyの簡単な計算機の問題

私はあなたに.kvと.pyの両方を提供します。ということは、私はビジュアルを完成しました。数学を含む電卓クラスを作成しました。今は、それを機能するGUIアプリケーションに組み込む必要があります。

私がしたいことは、「izracunaj」というラベルの付いたボタンをクリックすると、ユーザーの入力を受け取り、計算して結果を返すCalculatorクラス( '' ')です。

main.py

import kivy 
from kivy.app import App 
from kivy.uix.button import Button 
from kivy.uix.image import Image 
from kivy.uix.label import Label 
from kivy.uix.gridlayout import GridLayout 
from kivy.uix.textinput import TextInput 

class Screen(GridLayout): 
    def __init__(self, **kwargs): 
     super(Screen, self).__init__(**kwargs) 
     self.cols = 1 

     self.add_widget(Label(text="Koliko imas na racunu")) 
     self.stanjeNovaca = TextInput(multiline=False) 
     self.add_widget(self.stanjeNovaca) 

     self.add_widget(Label(text="Koliko dana do place")) 
     self.stanjeDani = TextInput(multiline=False) 
     self.add_widget(self.stanjeDani) 

     self.add_widget(Label(text="Koliko trosis na dan")) 
     self.stanjePotrosnja = TextInput(multiline=False) 
     self.add_widget(self.stanjePotrosnja) 

''' 
class Calculator(): 
    def calculation(): 
     stanjeNovaca = input("Koliko imas para na racunu? ") 
     stanjeDani = input("Koliko dana do place? ") 
     stanjePotrosnja = input("koliko trosis na dan? ") 
     svakiDanTrosis = stanjeDani*stanjePotrosnja 
     naKrajuMjeseca = stanjeNovaca-svakiDanTrosis 
     print("Ako svaki dan trosis {}, na kraju mjeseca ce ti ostati {}").format(stanjePotrosnja, naKrajuMjeseca) 
     return calculation(); 
''' 
class CalculatorApp(App): 
    def build(self): 
    return Screen() 


CalculatorApp().run() 

KV

<Screen> 
    Button: 
     text: "izracunaj" 

答えて

0

私はあなたのプログラムを修正しました。 kvファイルの追加されたコマンドは、ボタンを押すと計算を開始し、結果が出力されます。

main.py

import kivy 
from kivy.app import App 
from kivy.uix.button import Button 
from kivy.uix.image import Image 
from kivy.uix.label import Label 
from kivy.uix.gridlayout import GridLayout 
from kivy.uix.textinput import TextInput 

class Screen(GridLayout): 
    def __init__(self, **kwargs): 
     super(Screen, self).__init__(**kwargs) 
     self.cols = 1 

     self.add_widget(Label(text="Koliko imas na racunu")) 
     self.stanjeNovaca = TextInput(multiline=False) 
     self.add_widget(self.stanjeNovaca) 

     self.add_widget(Label(text="Koliko dana do place")) 
     self.stanjeDani = TextInput(multiline=False) 
     self.add_widget(self.stanjeDani) 

     self.add_widget(Label(text="Koliko trosis na dan")) 
     self.stanjePotrosnja = TextInput(multiline=False) 
     self.add_widget(self.stanjePotrosnja) 

    def calculation(self): 
     svakiDanTrosis = float(self.stanjeDani.text) * float(self.stanjePotrosnja.text) 
     naKrajuMjeseca = float(self.stanjeNovaca.text) - svakiDanTrosis 
     print("Ako svaki dan trosis {}, na kraju mjeseca ce ti ostati {}".format(self.stanjePotrosnja.text, naKrajuMjeseca)) 
     return naKrajuMjeseca 

class CalculatorApp(App): 
    def build(self): 
    return Screen() 


CalculatorApp().run() 

calculator.kv

<Screen> 
    Button: 
     text: "izracunaj" 
     on_release: root.calculation() 

あなたは自分にWidget(例えばLabel)を追加し、GUIで結果を表示したい場合はScreenを入力し、それに応じてテキストを設定します。

+0

恐縮です、ありがとうございます! :) –