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