вызов функции в python после отпускания мыши и закрытие окна tkinter после выбора опции из него - PullRequest
0 голосов
/ 15 мая 2018

Я хочу вызывать функцию в python после нажатия кнопки отпускания мыши. В настоящее время я вызываю ту же функцию после нажатия клавиши «a». Также я хочу автоматически закрывать окно tkinter после выбора опции.Вот мой код:

def onkeypress1(event):
 if event.key == 'a':
  def option_changed(*args):
     c=variable.get()
     object_list.append(c)
     print c
     return c


  master = Tk()
  variable = StringVar(master)
  variable.set("select") # default value
  variable.trace("w", option_changed)

  w = OptionMenu(master, variable, "INDIA", "USA", "UK")
  w.pack()

  mainloop()

Я хочу вызвать функцию onkeypress1 () после нажатия кнопки мыши.

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

- вызвать функцию после отпускания мыши и закрыть tkinter после выбора опции

from tkinter import Tk, Frame, OptionMenu, StringVar

class App(Frame):
    '''Class App'''
    def __init__(self, master=None):
        """ init App """
        Frame.__init__(self, master, bg="dim grey")
        self.bind("<ButtonRelease-1>", self.onkeypress1) # call function after mouse release
        self.pack(ipadx=50,ipady=50)
        self.variable = StringVar()
        self.variable.set("Select") # default value

        #trace(mode, callback) mode 'w' = call if variable is written
        self.variable.trace("w", self.option_changed) 

        w = OptionMenu(self, self.variable, "INDIA", "USA", "UK")
        w.pack()

    def onkeypress1(self,event):
        print("jo")

    def option_changed(self, *args):
        c=self.variable.get()
        print(c)
        if self.variable != "Select":
            self.master.destroy()

if __name__ == '__main__':
    root = Tk()
    app = App(root)
    root.mainloop()
    print("it runs further")
0 голосов
/ 15 мая 2018

Вы можете создать привязку для события ButtonRelease. На вопрос, подобный вашему, здесь был дан ответ: Как я могу определить, когда в Tkinter будет выпущена кнопка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...