2017-06-21 28 views
-1

Sooooo 我仍在從我最後一個問題開始研究這個學校項目,這次它是一個原型,而不是測試。它應該解決方程式。我已經在vanilla Python和TkInter中編寫了代碼,並且正在工作。它也有德國的部分。我的掙扎是如何從TextInput獲取字符串到處理部分,並將其交給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() 

正如你看到它是非常緊湊的,但我認爲這只是readyy用於% 約1所以,是的。 在此先感謝,我

+0

'def einfach(event,self)'......你是否打算在那裏更換訂單? –

+0

哦,是的。但是當我切換它時,它現在說事件丟失了。 – Banana

+0

刪除括號。 'on_press = self.einfach()' –

回答

1

此:

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

是完全一樣的:

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

當您綁定功能按鈕,你必須給按鈕調用。也就是說,一個參考一個函數。相反,您正在調用一個函數並傳遞結果。

的解決辦法是改變你的綁定像下面這樣(注意缺乏()):

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

此外,您需要更改此:

def einfach(event, self): 

...到這個:

def einfach(self, event): 
相關問題