2016-12-07 2 views
0

В настоящее время я работаю над калькулятором. Я покончил с большинством вещей, кроме самых важных, расчетов. Я просто хочу знать, можно ли решить мою проблему с таким кодом, и если да, то как? Я пробовал все, что мог, но ничего не работает. Я бы очень признателен за ответ.Как делать вычисления в Python 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, arg1, arg2)

И затем Защиту button15_clicked (самоощущение, button15, arg1, arg2): (...) mynumber = arg1 + arg2. Если вы сохраняете числа, введенные в любом месте. ((например, в кнопке 1 добавить строку, как a = a + str (1), в кнопке «+, -, *, /» вы оставите a и возьмите b, а затем передайте a и b в «=»)

И если нет, вы должны взять финальную строку в button15_clicked и разделить ее на ministrings между + - * /(), выполнить математику, чтобы получить результат, и добавить run sth, например self.show_result (результат) изнутри button15_clicked

+0

Первый спасибо за ваш ответ, но есть те arg1 и arg2, например, переменные i, объявленные ранее (first_num и second_num)? –

+0

Да. Я добавил пример. Вы должны видеть только, что значения делают, чтобы изменить их не только в функциях;) like : используйте «return a, b» – mpruchni

+0

или, конечно, self.a – mpruchni

Смежные вопросы