Проверка, была ли нажата кнопка

Как я могу проверить, была ли нажата кнопка? Может ли этот код работать или мне нужно использовать другую команду / синтаксис?

def div_clicked(self, button14):
    self.entry.set_text(self.entry.get_text() + str("/"))
    if button14 == "clicked":
        self.equal_clicked()
        self.arithmetic = "division"

Особенно эта строка:

if button14 == "clicked":

Я хотел бы знать, как я могу изменить код, чтобы self.equal_clicked() функция вызывается.

2 ответа

Решение

Расширить свой код вы можете сделать эту форму тоже

self.button14.connect("clicked", self.button14_click, "division")

def button14_click(self, button, data):
     self.entry.set_text(self.entry.get_text() + str("/"))
     self.equal_clicked()
     self.arithmetic = data

Поскольку ваш вопрос помечен как pygtk, я предполагаю, что вы используете GTK 2. В этом случае проверьте http://www.pygtk.org/pygtk2tutorial/ch-GettingStarted.html.

Это даст вам хорошую отправную точку в том, как обрабатываются нажатия кнопок и другие события. Я вставил слегка раздетую версию ниже:

import pygtk
pygtk.require('2.0')
import gtk

class HelloWorld:

    # This is a callback function. The data arguments are ignored
    # in this example. More on callbacks below.
    def hello(self, widget, data=None):
        print "Hello World"

    def destroy(self, widget, data=None):
        gtk.main_quit()

    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.connect("destroy", self.destroy)

        # Creates a new button with the label "Hello World".
        self.button = gtk.Button("Hello World")

        # When the button receives the "clicked" signal, it will call the
        # function hello() passing it None as its argument.  The hello()
        # function is defined above.
        self.button.connect("clicked", self.hello, None)
        self.window.add(self.button)
        self.button.show()
        self.window.show()

    def main(self):
        # All PyGTK applications must have a gtk.main(). Control ends here
        # and waits for an event to occur (like a key press or mouse event).
        gtk.main()

if __name__ == "__main__":
    hello = HelloWorld()
    hello.main()
Другие вопросы по тегам