Python:按下按钮时启动功能

时间:2015-11-13 02:05:50

标签: python function button

我正在为我的兄弟制作一个简单的程序,当他按下鼠标上的第4个按钮时,它会播放他想要的叮当声。 我有PyAudio,并使用一个简单的功能来获得叮当声。 我只需要知道如何设置按下按钮时启动的功能。
我的第一个想法是有一个When循环,当按下按钮时,它会改变var以适应和循环结束但是我不知道如何在按下按钮时更改var。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

使用python简单地制作GUI是很容易的。如果你喜欢外部的炫耀,Pygame很受欢迎。 Tkinter内置于python中,非常易于使用

Effbot是它不可或缺的资源;这是按钮上的页面。

http://effbot.org/tkinterbook/button.htm

SO上的人(实际上,很多人)也对此感到疑惑

How to pass arguments to a Button command in Tkinter?

要点是(python 2)

# import the GUI manager package
import Tkinter as tk
# make a window pop up
my_root_window = tk.Tk()
# add a button to it
button = tk.Button( my_root_window, text='Press Me!', command=foo)
# make the button appear
button.pack()
# keep the gui alive
my_root_window.mainloop()

这是我能做出的最小的例子。正如SO链接中所指出的那样,唯一的子目标是传递函数对象,即在分配函数时不调用该函数。

请注意,在搜索您的问题时,查询“python button command”会弹出我链接的页面以及超过一百万个其他页面;红鲱鱼是你说话的音频内容与从按钮调用功能的一般问题无关

我还应该注意,while循环不是正确的方法,因为它会导致几乎任何GUI冻结。最后调用的函数“mainloop”使窗口保持打开状态,并允许在窗口中发生事件,如按下按钮。只需在按下按钮设置正确的连锁反应时调用该函数。如果您需要更多控制,请查看更多小部件!

也很容易绑定到鼠标按钮

my_root_window.bind('<Button-1>',lambda event : foobar)
只要按下鼠标左键,

就会调用foobar。这个enter link description here页面提供了可能发生的事件的一些细节,特别是鼠标事件

答案 1 :(得分:0)

import Tkinter
import tkMessageBox

top = Tkinter.Tk()

def helloCallBack():
   tkMessageBox.showinfo( "Hello Python", "Hello World")

B = Tkinter.Button(top, text ="Hello", command = helloCallBack)

B.pack()
top.mainloop()