Python:按下按钮时启动功能

问题描述 投票:0回答:2

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

感谢您提前的帮助。

python function button
2个回答
0
投票

用 python 制作简单的 GUI 很容易。如果你喜欢外在的礼仪,Pygame 很受欢迎。 Tkinter 内置于 python 中,非常易于使用

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

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

SO上有人(实际上,不少人)也想知道这个问题

如何在 Tkinter 中将参数传递给 Button 命令?

要点是(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 按钮命令”会弹出我链接的页面以及超过一百万个其他页面;红鲱鱼是你正在谈论的音频内容与从按钮调用函数的一般问题无关

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

绑定到鼠标按钮也很容易

my_root_window.bind('<Button-1>',lambda event : foobar)

只要按下鼠标左键就会调用 foobar 。此在此处输入链接描述页面提供了有关可能发生的事件的一些详细信息,特别是鼠标事件


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()
© www.soinside.com 2019 - 2024. All rights reserved.