2016-12-07 2 views
0

저는 현재 계산기로 작업 중입니다. 나는 가장 중요한 것, 계산을 제외한 대부분의 것들로 끝났습니다. 나는 단지 그러한 코드로 내 문제를 해결할 수 있는지 알고 싶습니다. 그렇다면 어떻게해야합니까? 내가 할 수있는 모든 것을 시도했지만 아무것도 작동하지 않습니다. 나는 정말로 대답에 감사 할 것입니다.파이썬 Gtk에서 어떻게 계산합니까?

이 내 코드의 일부는 다음과 같습니다 내 코드가 길기 때문에

가 난 그냥 button16을 복사.

button16 = Gtk.Button(label="C") 
    button16.connect("clicked", self.button16_clicked) 
    vbox.pack_start(button16, True, True, 0) 
    vbox.pack_end(button16, True, True, 0) 
    self.add(button16) 



    self.first_num = 0 
    self.second_num = 0 
    self.result = 0 
    self.operation = "" 




def button1_clicked(self, widget): 
    self.entry.set_text(self.entry.get_text() + str(1)) 

def button2_clicked(self, widget): 
    self.entry.set_text(self.entry.get_text() + str(2)) 

def button3_clicked(self, widget): 
    self.entry.set_text(self.entry.get_text() + str(3)) 

def button4_clicked(self, widget): 
    self.entry.set_text(self.entry.get_text() + str(4)) 

def button5_clicked(self, widget): 
    self.entry.set_text(self.entry.get_text() + str(5)) 

def button6_clicked(self, widget): 
    self.entry.set_text(self.entry.get_text() + str(6)) 

def button7_clicked(self,widget): 
    self.entry.set_text(self.entry.get_text() + str(7)) 

def button8_clicked(self,widget): 
    self.entry.set_text(self.entry.get_text() + str(8)) 

def button9_clicked(self,widget): 
    self.entry.set_text(self.entry.get_text() + str(9)) 

def button10_clicked(self,widget): 
    self.entry.set_text(self.entry.get_text() + str(0)) 

def button11_clicked(self,button11): 
    self.entry.set_text(self.entry.get_text() + str("+")) 

def button12_clicked(self,widget): 
    self.entry.set_text(self.entry.get_text() + str("-")) 

def button13_clicked(self,widget): 
    self.entry.set_text(self.entry.get_text() + str("*")) 

def button14_clicked(self,widget): 
    self.entry.set_text(self.entry.get_text() + str("/")) 

def button15_clicked(self, button15): 
    self.entry.set_text(self.entry.get_text() + str("=")) 

def button16_clicked(self,button16): 
    self.entry.set_text("") 

답변

0

"Gtk에서 계산하는 것"이 ​​무슨 뜻인지 확실하지 않습니다. 어쩌면 이벤트 처리에 인수를 전달해야합니다. 이에

"button16.connect는 (" ", self.button16_clicked 클릭)"쉼표 후 :

그리고 데프 button15_clicked (자기, button15, ARG1, ARG2 (button15_clicked, ARG1, ARG2을 "클릭")) : (...) mynumber = arg1 + arg2. 아무 곳에 나 입력 한 번호를 저장하는 경우. (예를 들어 a = a + str (1)과 같이 button1을 추가하고 "+, -, *, /"버튼에서 a를 남기고 b를 가져 와서 "="에 a 및 b를 전달)

그리고 그렇지 않다면, button15_clicked에서 최종 문자열을 가져 와서 + - * /() 사이의 ministrings로 나눠서 결과를 얻기 위해 수학을 수행하고 내부에서 self.show_result (결과)와 같은 sth를 추가해야합니다 button15_clicked

+0

First 답을 고맙게 생각하지만 arg1과 arg2는 앞에서 선언 한 변수들 (first_num과 second_num)입니까? –

+0

예. 필자는 함수에서뿐만 아니라 값을 변경하기 위해 무엇을해야하는지보아야합니다.) : "return a, b"를 사용하십시오 – mpruchni

+0

또는 당연히 self.a – mpruchni

관련 문제