2017-06-21 3 views
-1

すっごく を逃すと、この時間は、それはプロトタイプではなく、テストです。方程式を解くことになっています。私はすでにバニラのPythonとTkInterでコードを書いており、それが動作しています。また、それにはドイツ語の部分があります。私の苦労は、TextInputからproccesingパートへの文字列の取得方法とLabelLösへの出力方法です。だからここに私のコードです:Kivy 1つの位置引数(自己)私はまだ私の最後の質問からその学校のプロジェクトに取り組んでいます

from kivy.app import App 
from kivy.uix.gridlayout import GridLayout 
from kivy.uix.label import Label 
from kivy.uix.textinput import TextInput 
from kivy.clock import Clock 
from kivy.uix.button import Button 

a=42 

class übung(GridLayout): 
    def __init__(self, **kwargs): 
     super(übung, self).__init__(**kwargs) 
     self.cols = 3 
     self.fill1 = Label(text = "") 
     self.label1 = Label(text = "Sagen sie ihre Gleichung") 
     self.fill2 = Label(text = "") 
     self.links = TextInput(multiline=False) 
     self.label2 = Label(text = '=') 
     self.rechts = TextInput(multiline=False) 
     self.fill3 = Label(text = '') 
     self.btn1 = Button(text="Lösen") 
     self.btn1.bind(on_press=self.einfach()) 
     self.fill4 = Label(text = '') 
     self.fill5 = Label(text = '') 
     self.btn2 = Button(text="Mit Rechenweg lösen") 
     self.btn2.bind(on_press=self.einfachS) 
     self.fill6 = Label(text = '') 
     self.fill7 = Label(text = '') 
     self.lös = Label(text = '') 
     self.fill8 = Label(text = '') 
     self.fill9 = Label(text = '') 
     self.rech1 = Label(text = '') 
     self.fill10 = Label(text = '') 
     self.fill11 = Label(text = '') 
     self.rech2 = Label(text = '') 
     self.fill12 = Label(text = '') 
     self.fill13 = Label(text = '') 
     self.rech3 = Label(text = '') 
     self.fill14 = Label(text = '') 
     self.fill15 = Label(text = '') 
     self.rech4 = Label(text = '') 


     self.add_widget(self.fill1) 
     self.add_widget(self.label1) 
     self.add_widget(self.fill2) 
     self.add_widget(self.links) 
     self.add_widget(self.label2) 
     self.add_widget(self.rechts) 
     self.add_widget(self.fill3) 
     self.add_widget(self.btn1) 
     self.add_widget(self.fill6) 
     self.add_widget(self.fill7) 
     self.add_widget(self.btn2) 
     self.add_widget(self.fill8) 
     self.add_widget(self.fill9) 
     self.add_widget(self.lös) 
     self.add_widget(self.fill4) 
     self.add_widget(self.fill5) 
     self.add_widget(self.rech1) 
     self.add_widget(self.fill10) 
     self.add_widget(self.fill11) 
     self.add_widget(self.rech2) 
     self.add_widget(self.fill12) 
     self.add_widget(self.fill13) 
     self.add_widget(self.rech3) 
     self.add_widget(self.fill14) 
     self.add_widget(self.fill15) 
     self.add_widget(self.rech4) 





    def einfach(event, self): 
     r = self.rechts.text 
     l = self.links.text 
     x = 'x' 
     if x in l: 
      r1,r2 = r.split ('+')      
      rr = float(r1) + float(r2) 
      lr, ll = l.split('x') 
      lr = float(lr) 
      end = rr/lr 
      end = float (end) 
      self.lös.text = end 
     elif x in r: 
      l1,l2 = l.split ('+')      
      ll = float(l1) + float(l2) 
      rl, rr = r.split('x') 
      rl = float(rl) 
      end = ll/rl 
      end = float(end) 
      self.lös.text = end 



    def einfachS(self, event): 
     print ('nein') 



class App(App): 
    def build(self): 
     return übung() 


if __name__ == "__main__": 
    App().run() 

あなたはそれが非常にコンパクトですが、私はそれはそうそう約1% のみreadyyだと思います見ての通り。

self.btn1.bind(on_press=self.einfach()) 

まさにこれと同じである:私は

+0

'def einfach(event、self)' ...そこに注文を切り替えることを意味しましたか? –

+0

ああはい。しかし、私はそれを切り替えると、それは今イベントが欠落していると言います。 – Banana

+0

かっこを削除します。 'on_press = self.einfach()' –

答えて

1

これは事前に おかげで、

result = self.einfach() 
self.btn1.bind(on_press=result) 

あなたはボタン呼び出し可能を与えなければならないボタンに機能をバインドするとき。すなわち、関数への参照です。代わりに、関数を呼び出して結果を渡しています。に...

def einfach(event, self): 

self.btn1.bind(on_press=self.einfach) 

また、あなたはこれを変更する必要があります:

溶液(()の欠如に注意してください)以下のようになり、あなたのバインディングを変更することですこれは:

def einfach(self, event): 
関連する問題