我如何在Python Gtk中进行计算?

时间:2016-12-07 10:52:30

标签: python pygtk

我目前正在使用计算器。除了最重要的事情,计算之外,我完成了大部分工作。我只是想知道是否有可能用这样的代码来解决我的问题,如果是的话,怎么样?我尝试了一切,但没有任何工作。我真的很感激答案。

这是我的一些代码:

我刚刚复制了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("")

1 个答案:

答案 0 :(得分:0)

我不确定你的意思是"在Gtk"中进行计算。也许你应该简单地在事件处理中传递参数。

在此" button16.connect("点击",self.button16_clicked)"逗号后:("点击",button15_clicked,arg1,arg2)

然后def button15_clicked(self,button15,arg1,arg2):( ...)mynumber = arg1 + arg2。  如果保存在任何地方输入的数字((例如在button1中添加一行,如a = a + str(1),在按钮" +, - ,*,/"你留下a并取b代替然后将a和b传递给&# 34; =&#34)

如果没有,你必须在button15_clicked中取一个最后一个字符串并将它拆分为+ - * /()之间的ministrings,做数学得到结果并添加runsth,如self.show_result(result)from button15_clicked